JAVA高级工程师课程笔记整理——(九)JDBC与DBUtil

(九)JDBC与DBUtil
jdbc
    Java数据库连接技术
    JDBC API
    JDBC的步骤:
        1、加载驱动
        2、获取连接
        3、获取执行sql语句的对象
        4、查询返回结果集
        5、释放资源
    异常处理

    将数据库信息写在配置文件当中,
    让程序通过读取配置文件来获得这些信息
    驱动
    连接
    用户名
    密码
    
    Statement
        excuteQuery  ---- 查询
        excuteUpdate ----- 添加,删除,修改
    PreparedStatement:
        优点:
            预编译sql语句,提高效率
            安全性较高(防止sql注入)    
            代码可读性好
        占位符 ?
         从1开始数
    ① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
  ② Repeatable read (可重复读):可避免脏读、不可重复读的发生。
  ③ Read committed (读已提交):可避免脏读的发生。
  ④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。
    mysql默认的事务隔离级别:
        Repeatable read
    Oracle默认事务隔离级别:
        READ COMMITTED
连接池:
    DBCP
        1.获取数据源(DataSource)
        BasicDataSourceFactory.createDataSource(props);    

    C3P0
        开源的JDBC连接池
            dbcp没有自动回收空闲连接的功能
            c3p0有自动回收空闲连接功能
            
        jar文件:
            c3p0-0.9.1.2.jar
            c3p0-0.9.1.2-jdk1.3.jar
            c3p0-oracle-thin-extras-0.9.1.2.jar(支持oracle链接的)
        
        ComboPooledDataSource
        配置文件:
            c3p0.properties
            c3p0-config.xml(常用配置文件)
DBUtils
    Apache开源组织
    简化JDBC应用程序的开发,同时也不会影响程序的性能
    不使用Hibernate或者mybatis,DBUtils就是很好的
    替代品
    核心类:
        QueryRunner
    tp:
        DBUtils的用法
        http://www.cnblogs.com/xdp-gacl/p/4007225.html
        
    QueryRunner
        new QueryRunner(datasource);
    结果集类型:    
    ResultSetHandler
        ArrayHandler:把结果集中的第一行数据转成对象数组。
        ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。
        BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
        BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
        ColumnListHandler:将结果集中某一列的数据存放到List中。
        KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。
        MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
        MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
        ScalarHandler:查询结果封装成Object
    释放资源    
        DbUtils.closeQuietly(conn, stmt, rs)

你可能感兴趣的:(jdbc)