JDBC——阶段性总结

向右看齐 2022-11-25 13:10 230阅读 0赞

1、JDBC工作流程

  • 添加jar依赖
  • Class.forName(“驱动”)
  • Connection con=DriverManager.getConnection(url,username,pwd);
  • PrepareStatement ps=con.PrepareStatement(sql); Ps.setString(1,””);
  • Insert update delete—- int ret=ps.executeUpdate(); Select —-ResultSet rs=ps.executeQuery();
  • 遍历结果集ResultSet
  • 关闭资源,后创建的先关闭

2、封装了工具类

  1. public class DruidUtils {
  2. private static DruidDataSource dataSource=null;
  3. private static ThreadLocal<Connection> threadLocal;
  4. static{
  5. //1 创建流
  6. try {
  7. threadLocal=new ThreadLocal<>();
  8. InputStream is = DruidUtils.class.getClassLoader().getResourceAsStream("database.properties");
  9. Properties properties=new Properties();
  10. properties.load(is);
  11. dataSource= (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
  12. } catch (Exception e) {
  13. e.printStackTrace();
  14. System.out.println("初始化连接池失败....");
  15. //日志
  16. }
  17. }
  18. //获取数据源
  19. public static DataSource getDataSource(){
  20. return dataSource;
  21. }
  22. //获取连接
  23. public static Connection getConnection() throws SQLException {
  24. Connection conn=threadLocal.get(); //Thread.curentThread;
  25. if(conn==null){
  26. conn=dataSource.getConnection();
  27. //放入threadLocal
  28. threadLocal.set(conn);
  29. }
  30. return conn;
  31. }
  32. //开启事务
  33. public static void beginTransaction() throws SQLException{
  34. Connection conn = getConnection();
  35. conn.setAutoCommit(false);
  36. }
  37. //提交事务
  38. public static void commit() throws SQLException{
  39. Connection conn = getConnection();
  40. conn.commit();
  41. }
  42. //回滚事务
  43. public static void roolback() throws SQLException{
  44. Connection conn = getConnection();
  45. conn.rollback();
  46. }
  47. //关闭
  48. public static void close() throws SQLException{
  49. Connection conn = getConnection();
  50. conn.close();
  51. threadLocal.remove();
  52. }
  53. }

3、数据源、连接池

Druid c3p0

分层开发 利用MVC模式:dao service controllers

发表评论

表情:
评论列表 (有 0 条评论,230人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Redis 专栏阶段性总结

    > 这篇应该是紧接着 [Redis 基础类型与底层结构及其使用场景梳理][Redis] 发出来的,发出来之后就该去学习别的内容了,但是最近一个月加班(回来就不想系统学习新东西了

    相关 ARTS 阶段性总结

    转眼间十周过去了,回过头去看自己之前写的 ARTS 以及相关文章,感觉还是收获不小,至少我行动了。在这里我首先说说自己为什么要持续写 ARTS。之前在极客时间上看皓叔写的专栏,