JDBC——段階的総括

2261 ワード

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、工具類を封入した
    public class DruidUtils {
        private static DruidDataSource dataSource=null;
    
        private static ThreadLocal threadLocal;
    
        static{
            //1    
            try {
    
                threadLocal=new ThreadLocal<>();
    
                InputStream is = DruidUtils.class.getClassLoader().getResourceAsStream("database.properties");
                Properties properties=new Properties();
                properties.load(is);
    
                dataSource= (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("        ....");
                //  
            }
    
        }
         
    
        //     
        public static DataSource getDataSource(){
            return dataSource;
        }
    
    
        //    
        public static Connection getConnection() throws SQLException {
            Connection conn=threadLocal.get(); //Thread.curentThread;
            if(conn==null){
                conn=dataSource.getConnection();
                //  threadLocal
                threadLocal.set(conn);
    
            }
            return  conn;
        }
    
    
        //    
        public static void beginTransaction() throws  SQLException{
            Connection conn = getConnection();
            conn.setAutoCommit(false);
    
        }
    
        //    
        public static void commit() throws SQLException{
            Connection conn = getConnection();
            conn.commit();
        }
    
        //    
        public static void roolback() throws SQLException{
            Connection conn = getConnection();
            conn.rollback();
        }
    
        //  
        public static void close() throws SQLException{
            Connection conn = getConnection();
            conn.close();
            threadLocal.remove();
    
        }
    
    }

            3、データソース、接続プール
               Druid c3p0
    階層開発利用MVCモード:dao  service  controllers