黑马程序员技术交流社区

标题: JDBC学习笔记总结 [打印本页]

作者: 哥.兜裡有煙    时间: 2017-12-3 18:24
标题: JDBC学习笔记总结
本帖最后由 哥.兜裡有煙 于 2017-12-3 18:28 编辑

【JDBC的概述】
【JDBC的开发步骤】
JDBC的API: DriverManager java.sql
Connection:连接. java.sql   
       * 获得连接.   
       * 执行事务的管理.
Statement: java.sql   
       * 执行SQL语句.      
             * int executeUpdate(String sql);      
             * ResultSet executeQuery(String sql);      
             * boolean execute(String sql);
ResultSet: java.sql   
       * getXXX(int idx),getXXX(String name);
连接池:DbUtils:工具类:C3P0改造后的工具类public class JDBCUtils {
        private static final ComboPooledDataSource DATA_SOURCE =new ComboPooledDataSource();
        /**
         * 获得连接的方法
         */
        public static Connection getConnection(){
            Connection conn = null;
            try {
                conn = DATA_SOURCE.getConnection();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return conn;
        }
        
        public static DataSource getDataSource(){
            return DATA_SOURCE;
        }
        
        /**
         * 释放资源的方法
         */
        public static void release(ResultSet rs,Statement stmt,Connection conn){
            if (rs != null) {
                try {
                    rs.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                // 垃圾回收尽快回收对象.
                rs = null;
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                // 垃圾回收尽快回收对象.
                stmt = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                // 垃圾回收尽快回收对象.
                conn = null;
            }
        }
        
        public static void release(Statement stmt,Connection conn){
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                // 垃圾回收尽快回收对象.
                stmt = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                // 垃圾回收尽快回收对象.
                conn = null;
            }
        }
        /**
         * 元数据提取
         * @param sql
         * @param obj
         * @return
         * @throws SQLException
         */
        public static int  updata(String sql ,Object...obj) throws SQLException {
            Connection conn = DATA_SOURCE.getConnection();
            PreparedStatement stmt = conn.prepareStatement(sql);
            int count =stmt.getParameterMetaData().getParameterCount();
            
            for (int i = 0; i < count; i++) {
                stmt.setObject(i+1, obj);
            }
            int result = stmt.executeUpdate();
            release(stmt, conn);
            
            return result;
        }
    }






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2