公共模块:数据库连接及操作类
- 连接数据库的方法getConnection()
- 执行查询语句方法executeQuery()
- 执行更新操作方法executeUpdate()
- 关闭数据库连接的方法close()
package com.core;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.Properties;
public class ConnDB {
public Connection conn=null; //声明Connection对象的实例
public java.sql.Statement stmt =null; //声明Statement对象的实例
public ResultSet rs =null; //声明ResultSet对象的实例
private static String propFileName="/com/connDB.properties"; //创建并实例化propFileName对象的实例
private static Properties prop=new Properties(); //定义保存数据库驱动的变量
private static String dbClassName="com.mysql.jdbc.Driver";
private static String dbUrl="jdbc:mysql://117.0.0.1:3306/db_library?user=root&password=1234&useUnnicode=true";
public ConnDB() { //构造方法
try {
InputStream in = getClass().getResourceAsStream(propFileName);
//将properties文件读取到InputStream对象中
prop.load(in);
//通过输入流对象加载properties文件
dbClassName=prop.getProperty("DB_CLASS_NAME");
//获取数据库驱动
dbUrl=prop.getProperty("DB_URL",dbUrl);
//获取连接的URL
} catch (Exception e) {
System.err.println("jdbc连接异常");
e.printStackTrace(); //输出异常信息
}
}
/**
* 连接数据库的方法
* @return Connection 返回数据库连接对象的实例
*/
public static Connection getConnection(){
Connection conn=null;
try {
Class.forName(dbClassName).newInstance(); //装载数据库驱动
conn=DriverManager.getConnection(dbUrl);
//建立要数据库之间的连接
} catch (Exception e) {
e.printStackTrace(); //输出异常信息
}
if (conn==null) {
System.err.println("警告:DriverManager.getConnection()获取数据库链接失败。"
+ "\r\n\r\n链接类型:"+dbClassName+"\r\n链接位置:"+dbUrl);
//在控制台输出连接失败提示信息
}
return conn; //返回数据库连接对象
}
/**
* 执行查询语句的方法
* @return ResultSet 结果集对象
*/
public ResultSet executeQuery(String sql) {
conn = getConnection();
//调用getConnection()方法获取一个实例conn
try {
stmt= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace(); //输出异常信息
}
return rs; //返回结果集对象
}
/**
* 执行更新操作的方法
* @param sql
* @return int 更新的行数
*/
public int executeUpdate(String sql){
int result=0; //定义保存返回值的变量
conn = getConnection(); //调用getConnection()方法构造Connection对象的一个实例
try {
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
result=stmt.executeUpdate(sql); //执行更新操作
} catch (Exception e) {
result=0; //将返回值的变量赋值为0
}
return result; //返回保存返回值的变量
}
/**
* 关闭数据库的方法无返回值
*/
public void close(){
try {
if (rs!=null) { //当ResultSet对象的实例rs不为空时
rs.close(); //关闭ResultSet对象
}
if (stmt!=null) { //当Statement对象的实例stmt不为空时
stmt.close(); //关闭Statement对象
}
if (conn!=null) { //当Connection对象的实例conn不为空时
conn.close(); //关闭Connection对象
}
} catch (Exception e) {
e.printStackTrace(); //输出异常信息
}
}
}
其中为了移植的方便,数据库连接所需的信息保存在文件connDB.properties中并保存在com包下。connDB.properties文件内容如下:
# DB_CLASS_NAME(驱动的类的类名)
DB_CLASS_NAME=com.mysql.jdbc.Driver
#DB_URL(要连接数据库的地址)
DB_URL=jdbc:mysql://117.0.0.1:3306/db_library?user=root&password=1234&useUnnicode=true
我的博客网站:http://huyuxin.top/欢迎大家访问!评论!