⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbutil.java

📁 一个bbs论坛系统
💻 JAVA
字号:
package com.lovo.util;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

/**
 * <p>
 * Copyright (C),2008,9
 * 
 * Filename: DBUtil
 * 
 * Desctiptoin: 数据库连接类
 * 
 * @author lovo39部5组
 */
public class DBUtil {

	/** 连接的URL */
	private static String url;

	/** 反射对象的类名 */
	private static String className;

	/** 资源文件名 */
	private static final String FILE_NAME = "dbCon.properties";

	/** 数据库连接类对象 */
	private static DBUtil dBUtil;

	/** 数据库连接对象 */
	private Connection con;

	/** 预编译语句对象 */
	private PreparedStatement pre;

	/** 结果集对象 */
	private ResultSet rs;

	public DBUtil() {
		
	}
	
	/**
	 * 加载资源文件
	 */
	static {
		Properties pro = new Properties();
		try {
			String path=DBUtil.class.getClassLoader().getResource(FILE_NAME).getFile();
			pro.load(new FileInputStream(path.substring(1)));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("文件没有找到");
		} catch (IOException e1) {
			e1.printStackTrace();
			System.out.println("文件读取异常");
		}
		url = pro.getProperty("url");
		className = pro.getProperty("driver");
	}

	/**
	 * 获得资源文件路径
	 * 
	 * @param fileName
	 *            资源文件名
	 * @return
	 */
	private static String getPath(String fileName) {
		StringBuffer sb = new StringBuffer();
		sb.append(System.getProperty("user.dir"));
		sb.append("/properties/");
		sb.append(fileName);
		return sb.toString();
	}

	/**
	 * 单例模式获得数据库连接类对象
	 * 
	 * @return DBUtil 数据库连接类对象
	 */
	public synchronized static DBUtil getDBUtil() {
		if (dBUtil == null) {
			dBUtil = new DBUtil();
		}
		return dBUtil;
	}

	/**
	 * 获得数据库连接对象
	 * 
	 * @return Connection
	 */
	public Connection getConnection() {
		try {
			Class.forName(className);
			this.con = DriverManager.getConnection(url);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			System.out.println("类不存在");
		} catch (SQLException e1) {
			e1.printStackTrace();
			System.out.println("数据库连接异常");
		}
		return con;
	}

	/**
	 * 获得预编译语句对象
	 * 
	 * @return PreparedStatement
	 */
	public PreparedStatement getPre(Connection con, String sql) {
		try {
			pre = con.prepareStatement(sql);
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("数据库异常");
		}
		return pre;
	}

	/**
	 * 获得结果集对象
	 * 
	 * @return ResultSet
	 */
	public ResultSet getRs(PreparedStatement pre) {
		try {
			rs = pre.executeQuery();
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("数据库异常");
		}
		return rs;
	}

	/**
	 * 关闭结果集
	 * 
	 * @param rs
	 *            结果集对象
	 */
	public void close(ResultSet rs) {
		try {
			if(rs != null) {
				rs.close();	
			}
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("结果集关闭异常");
		}
	}

	/**
	 * 关闭预编译语句
	 * 
	 * @param pre
	 *            预编译语句对象
	 */
	public void close(PreparedStatement pre) {
		try {
			if(pre != null) {
				pre.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("预编译语句关闭异常");
		}
	}

	/**
	 * 关闭数据库连接
	 * 
	 * @param con
	 *            数据库连接对象
	 */
	public void close(Connection con) {
		try {
			if(con != null) {
				con.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("数据库连接对象关闭异常");
		}
	}

	public static void main(String[] args) {
		DBUtil.getDBUtil().getConnection();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -