JAVA高级工程师课程笔记整理——(九)JDBC与DBUtil
来源:互联网 发布:java构造方法定义 编辑:程序博客网 时间:2024/06/11 04:26
(九)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
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)
阅读全文
0 0
- JAVA高级工程师课程笔记整理——(九)JDBC与DBUtil
- JAVA高级工程师课程笔记整理——(八)tomcat与九大内置对象
- JAVA高级工程师课程笔记整理——(十三)Linux
- JAVA高级工程师课程笔记整理——(七)Mysql
- JAVA高级工程师课程笔记整理——(十)Servlet
- JAVA高级工程师课程笔记整理——(十一)EL表达式与JSTL
- JAVA高级工程师课程笔记整理——(一)初识JAVA
- JAVA高级工程师课程笔记整理——(二)JAVA基础
- JAVA高级工程师课程笔记整理——(三)面向对象
- JAVA高级工程师课程笔记整理——(四)高级特性
- JAVA高级工程师课程笔记整理——(五)XML解析
- JAVA高级工程师课程笔记整理——(六)网页三剑客
- JAVA高级工程师课程笔记整理——(十二)jquery和ajax
- JAVA学习笔记整理九(IO)
- JDBC笔记(九)分页
- 面试总结——Java高级工程师(二)
- 面试总结——Java高级工程师(三)
- 面试总结——Java高级工程师(三)
- 看哪些书,需要加深哪些方面的了解
- OpenGL 入门基础教程 —— 基本术语篇【3】
- python3.5+pycuda installzation + pytools no file or directory "nvcc"
- 比特币勒索病毒
- Android 反编译初步之基础smali篇
- JAVA高级工程师课程笔记整理——(九)JDBC与DBUtil
- windows中的dos命令
- javascript 立即执行函数
- JAVA中的数据存储的5个区域
- 在orcale中,得到去重之后的count数
- 层次分析法
- 云计算行业投资机会分析
- Restful API的设计规范
- 传微软正在测试一款新手机 Windows Phone不会死亡了?