Java知识点总结(JDBC-封装JDBC)

Java知识点总结(JDBC-封装JDBC)

@(Java知识点总结)[Java, JDBC]

封装JDBC

  1. src目录下新建一个db.properties文件,用于封装数据库连接信息

clipboard.png

  1. 把获取数据库连接对象和关闭连接的操作封装到 DBUtil 这个类中
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.sql.Statement;
import java.util.Properties;
 
public class DBUtil {
  static Properties pros; //读取和处理资源文件的信息
  
  static{ // 只需要加载一次,所以写成静态代码块。执行本类时,加载
    pros = new Properties();
    try {
     pros.load(Thread.currentThread().getContextClassLoader()
         .getResourceAsStream("db.properties"));
    } catch (IOException e) {
     e.printStackTrace();
    }
  }
 
  public static Connection getConn(){
    Connection conn = null;
    try {
     Class. forName(pros.getProperty("mysqlDriver"));
     conn = DriverManager.getConnection(pros.getProperty("mysqlUrl"),
         pros.getProperty( "mysqlUser"), pros.getProperty("mysqlPassword"));
    } catch (ClassNotFoundException | SQLException e) {
     e.printStackTrace();
    }
    return conn;
  }
  
  // 不建议把conn写为静态的全局变量,然后在方法中关闭
  public static void close(Connection conn){
    try {
     conn.close();
    } catch (SQLException e) {
     e.printStackTrace();
    }
  }
  
  public static void close(Statement stmt) {
    try {
     stmt.close();
    } catch (SQLException e) {
     e.printStackTrace();
    }
  }
  
  public static void close(PreparedStatement pstmt) {
    if (pstmt != null) {
     try {
       pstmt.close();
     } catch (SQLException e) {
       e.printStackTrace();
     }
    }
  }
  
  public void close(ResultSet rs) {
    try {
     rs.close();
    } catch (SQLException e) {
     e.printStackTrace();
    }
  }
  
  public static void commit(Connection conn) {
    if (conn != null) {
     try {
       conn.commit();
     } catch (SQLException e) {
       e.printStackTrace();
     }
    }
  }
  
  public static void rollback(Connection conn) {
    if (conn != null) {
     try {
       conn.rollback();
     } catch (SQLException e) {
       e.printStackTrace();
     }
    }
  }
  
  public static void setAutoCommit(Connection conn, boolean autoCommit) {
    if (conn != null) {
     try {
       conn.setAutoCommit(autoCommit);
     } catch (SQLException e) {
       e.printStackTrace();
     }
    }
  }
  
  
  //连接测试
  public static void main(String[] args) {
    if (DBUtil.getConn()!=null) {
     System.out.println("连接成功!");
     
    }
  }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值