DBUtil封装思想-数据库基本操作

概要:通过DBUtil封装类提供数据库的基本操作,提高了代码的复用性(仅作参考)。

1 封装思想-从properties配置文件中取值-提高了可维护性

1.1 创建properties文件

driver = com.mysql.jdbc.Driver
url = jdbc:mysql://127.0.0.1:3306/db_java1ssm?useSSL=true&characterEncoding=utf8
jdbcuser = root
pwd = 123456

1.2 声明静态变量

private static String driver ;
private static String url ;
private static String jdbcuser ;
private static String pwd ;

1.3 获取properties配置文件中资源

    // static方法代表软件一打开就会自动加载资源文件
    static {
        try {
            properties.load(DBUtil.class.getClassLoader().getResourceAsStream("db.properties"));
            driver = properties.getProperty("driver");
            url = properties.getProperty("url");
            jdbcuser = properties.getProperty("jdbcuser");
            pwd = properties.getProperty("pwd");
        } catch (IOException e) {
            e.printStackTrace();
        }


    }

2 封装思想-连接数据库语句

public void doConnection(){
        try {
            Class.forName(driver);  //加载驱动
            conn= DriverManager.getConnection(url,jdbcuser,pwd);  //连接数据库
        }catch (Exception e){
            e.printStackTrace();
        }
    }

3 实现增删改的BaseDao封装。

  • 返回值:因为数据库的增删改操作返回的是受影响的行数,所有返回值应为int型。
  • 传入参数:待执行的sql语句和预编译语句PreparedStatement的待传参数’ ?’。
public int doExecuteUpdate(String sql,Object[] pstms){  // Object[] 占位?不知道是什么数据类型,所有用了泛型处理
        int num=0; //存放影响的函数
        try {
            //执行sql语句
            pstm=conn.prepareStatement(sql);
            //返回占位符
            for(int i=0;i

4 封装思想-实现查询的BaseDao封装

  • 返回值:因为数据库的查询操作返回的ResultSet结果集,所以返回值也应该为ResultSet。
  • 传入参数:待执行的sql语句和预编译语句PreparedStatement的待传参数’ ?’。
 public ResultSet doExecuteQuery(String sql,Object[] pstms){  // Object[] 占位?不知道是什么数据类型,所有用了泛型处理
        try{
            pstm=conn.prepareStatement(sql);
            //处理占位符
            if(pstms!=null){
                for(int i=0;i

5 封装思想-实现数据库资源释放

public void doClose(ResultSet r,PreparedStatement p,Connection c){
        if(r!=null){
            try {
                r.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(p!=null){
            try {
                p.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(c!=null){
            try {
                c.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

你可能感兴趣的:(DBUtil封装思想-数据库基本操作)