数据库连接及操作类 ConnDB

来源:互联网 发布:淘宝卖家图片轮播 编辑:程序博客网 时间:2024/05/16 05:13

公共模块:数据库连接及操作类

  1. 连接数据库的方法getConnection()
  2. 执行查询语句方法executeQuery()
  3. 执行更新操作方法executeUpdate()
  4. 关闭数据库连接的方法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/欢迎大家访问!评论!

0 0