没有合适的资源?快使用搜索试试~ 我知道了~
首页Java JDBC由浅入深.pdf
Java JDBC由浅入深.pdf
需积分: 10 34 下载量 23 浏览量
更新于2023-03-16
评论
收藏 1.91MB PDF 举报
当今 orm 等全自动针对对象持久化的框架越来越多并且也越来越成熟(ibatis, hibernate,ejb 的 jpa),但是无奈新东家需要使用 jdbc(原始手工作坊)的模式和数据 库打交道,用了几年的 ibatis,再次使用 jdbc 发现有些细节和底层的东西自己并不是十 分清楚,所以就啰理啰嗦的整理出一份学习笔记,第一作为自己对 jdbc 重新的复习, 第二如果有可能希望给初学 jdbc 的朋友带来一定的便利,这样也不枉我点点滴滴的记 录
资源详情
资源评论
资源推荐
坚持不懈,哪怕每天只会进步一点,长此以往终归会有所收获
汪文君 QQ:532500648,属于个人劳动成果,如需转载请标明出处,如果本文中有什么偏差的地方也
希望大家和我交流以便纠正。 1
目录
第一节 整理目的 ................................................................................................. 3
第二节 jdbc 的概念.............................................................................................. 3
2.1 概念 ............................................................................................................. 3
2.2 Jdbc 与应用程序的关系 ................................................................................. 3
2.3 数据库的连接步骤 ....................................................................................... 4
2.4 Quick Start .................................................................................................... 4
第三节 如何与数据库建立连接 ............................................................................ 6
3.1 注册驱动 ..................................................................................................... 6
3.2 建立数据库的连接 ....................................................................................... 8
3.3 规范 Quick Start 中的例子 ........................................................................... 10
第四节 Statement 接口的使用详解 ..................................................................... 12
4.1 Statement 的常用方法 ................................................................................. 12
4.2 CRUD 操作 ................................................................................................. 16
4.3 Statement 有那些缺点 .................................................................................. 19
第五节 ResultSet 接口的使用详解 ...................................................................... 20
第六节 JDBC 中数据类型详解 .......................................................................... 30
6.1 基本数据类型 ............................................................................................ 30
6.2 日期类型 ................................................................................................... 34
6.3 CLOB 类型 ................................................................................................. 36
6.4 BLOB 类型 ................................................................................................. 39
6.5 其他数据类型 ............................................................................................ 41
第七节 DAO 设计模式详解................................................................................ 41
7.1 实际项目中如何使用 JDBC......................................................................... 41
7.2 DAO 设计模式简介 ..................................................................................... 42
7.3 DAO 设计模式的实现 ................................................................................. 42
7.4 DAO 设计模式与工厂模式的整合 ................................................................ 49
7.5 DAO 设计模式测试 ..................................................................................... 52
第八节 JDBC 对事务的支持............................................................................... 52
8.1 模拟转账 ................................................................................................... 53
8.2 jdbc 默认事务 ............................................................................................. 54
8.3 事务提交与回滚 ......................................................................................... 54
8.4 设置保存点 ................................................................................................ 55
8.5 JTA 事务的介绍 .......................................................................................... 56
8.6 数据库的隔离级别介绍 .............................................................................. 56
8.6.1 未提交读 .......................................................................................... 57
8.6.2 提交读 ............................................................................................. 58
8.6.3 重复读 ............................................................................................. 59
8.6.4 序列化读 .......................................................................................... 60
8.7 小结 .......................................................................................................... 62
第九节 PreparedStatement 接口的使用 ................................................................ 62
第十节 CallableStatement 接口的使用 ................................................................. 62
坚持不懈,哪怕每天只会进步一点,长此以往终归会有所收获
汪文君 QQ:532500648,属于个人劳动成果,如需转载请标明出处,如果本文中有什么偏差的地方也
希望大家和我交流以便纠正。 2
9.1 无参无返回值存储过程调用 ....................................................................... 63
9.2 有参无返回值存储过程调用 ....................................................................... 63
9.3 有参有返回值存储过程调用 ....................................................................... 64
9.4 JDBC 其他 API ........................................................................................... 65
第十一节 元数据信息 ........................................................................................ 66
11.1 数据库元数据信息 .................................................................................... 66
11.2 参数元数据信息 ....................................................................................... 67
第十二节 批处理的使用..................................................................................... 67
12.1 普通方式插入一千条数据 ......................................................................... 68
12.2 批处理方式插入一千条数据...................................................................... 69
第十三节 JDBC 其他 API................................................................................... 70
13.1 可滚动结果集........................................................................................... 70
13.2 分页技术.................................................................................................. 72
13.3 可更新结果集........................................................................................... 73
第十四节 编写一个简单的数据库连接池 ............................................................ 74
14.1 为什么要使用数据库连接池...................................................................... 74
14.2 数据库连接池雏形.................................................................................... 74
14.2 数据库连接池优化.................................................................................... 77
14.2.1 对线程池加锁 ................................................................................. 77
14.2.2 连接不够用时抛出异常 ................................................................... 77
14.3 数据库连接池之代理模式 ......................................................................... 78
14.3.1 静态代理 ........................................................................................ 78
14.3.2 动态代理 ........................................................................................ 84
14.4 DBCP 数据库连接池的使用 ....................................................................... 87
第十五节 jdbc 轻量级封装 ................................................................................. 88
15.1 将结果集封装为 Map ................................................................................ 88
15.1.1 ResultSetMetaData 演示 .................................................................... 88
15.1.2 解决多行记录的问题 ....................................................................... 89
15.1.3 Map 结果集的封装........................................................................... 90
15.2 将结果集封装为对象 ................................................................................ 91
15.2.1 user 表 POJO 的编写 ........................................................................ 91
15.2.2 Bean 结果集的封装 .......................................................................... 92
15.3 将结果集封装为 List ................................................................................. 94
15.4 策略模式的应用 ....................................................................................... 96
15.4.1 Map 结果集策略模式应用 ................................................................ 96
15.4.2 Bean 结果集策略模式应用 ............................................................... 97
15.4.3 List 结果集策略模式应用 ................................................................. 98
15.4.4 单元测试 ........................................................................................ 99
15.5 模板模式的应用 ......................................................................................100
第十六节 近期推出...........................................................................................101
坚持不懈,哪怕每天只会进步一点,长此以往终归会有所收获
汪文君 QQ:532500648,属于个人劳动成果,如需转载请标明出处,如果本文中有什么偏差的地方也
希望大家和我交流以便纠正。 3
第一节 整理目的
当今 orm 等全自动针对对象持久化的框架越来越多并且也越来越成熟(ibatis,
hibernate,ejb 的 jpa),但是无奈新东家需要使用 jdbc(原始手工作坊)的模式和数据
库打交道,用了几年的 ibatis,再次使用 jdbc 发现有些细节和底层的东西自己并不是十
分清楚,所以就啰理啰嗦的整理出一份学习笔记,第一作为自己对 jdbc 重新的复习,
第二如果有可能希望给初学 jdbc 的朋友带来一定的便利,这样也不枉我点点滴滴的记
录。
随着对 jdbc 整理和学习的逐渐深入,发现原先使用 orm 框架时忽略了那么多的细
节,这样在出现问题或者学习 orm 更加深入知识时则会显得力不从心,在本文档将 jdbc
如何入门阐述清楚之后,增加了如下的内容:
数据库连接池,以及常用连接池的使用(dbcp,c3p0 等)
编写一套基于 jdbc 轻量级的 api,方便使用;
如何将查询结果封装为对象;
如何将查询结果封装为 Map;
如何将查询结果封装为 List;
如何在 JDBC 的使用中加入策略,模板等模式;
在后面的 JDBC 高级部分将会讲解到 Dbutils 源码,Spring 对 JDBC 的强大封装
第二节 jdbc 的概念
2.1 概念
我最不喜欢替别人整理某个名词的概念了,只要是概念性的东西基本上在任何地方都可
以查得到,所以我就通俗的写一些自己对 jdbc 的理解,所谓 jdbc 就是 java 与数据库之间进
行通讯的 api,也就是一个标准,所以如果一个 java 应用程序想要和数据库打交道基本上都
离不开 jdbc,众所周知,一些优秀的 orm 框架的底层也是采用 jdbc 进行封装的。
2.2 Jdbc 与应用程序的关系
JdbcAPI 所处的位置和它与应用程序之间的关系,下面的一张图再也明显不过了,其中
绿色的部分代表 jdbcAPI,它提供了很多接口,并且本身也实现了很多方法,可以看到蓝色
的部分就是各个数据库厂商自己对 jdbcAPI 的一些实现,这就是我们常见的数据库连接驱
动,这是使用 jdbc 程序进行开发必不可少的东西。
坚持不懈,哪怕每天只会进步一点,长此以往终归会有所收获
汪文君 QQ:532500648,属于个人劳动成果,如需转载请标明出处,如果本文中有什么偏差的地方也
希望大家和我交流以便纠正。 4
2.3 数据库的连接步骤
1. 注册驱动 (Driver)
2. 建立连接(创建 Connection)
3. 创建执行 sql 语句(通常是创建 Statement 或者其子类)
4. 执行语句
5. 处理执行结果(在非查询语句中,该步骤是可以省略的)
6. 释放相关资源
在后文中,将会对上述几个步骤一一进行讲解,希望读者能够仔细阅读;
2.4 Quick Start
好了,了解了一下 jdbc 的基本概念,相比对 jdbc 已经有了一个感性的认识,现在我们
为了直观期间,直接来上一段代码了解一下 jdbc 最简单的程序如何进行开发的。
在该小节中,我们以一个简单的增删改查为例进行说明,然后会将该章节中涉及的各个
常用以及关键的 API 进行详细的讲解;
首先我们创建一个数据表,在 test 数据库下,见表语句为
create table user(id integer primary key,
name varchar(30) ,
birthday date,
money float);
插入两条语句
insert into user values(2,'zhangsan','2010-01-01',15000);
insert into user values(1,'wangwenjun','1984-06-09',8500.00);
坚持不懈,哪怕每天只会进步一点,长此以往终归会有所收获
汪文君 QQ:532500648,属于个人劳动成果,如需转载请标明出处,如果本文中有什么偏差的地方也
希望大家和我交流以便纠正。 5
好了,数据准备好了,我们通过一个完整的例子讲上述中数据库的连接步骤进行一个演
示,在本例子中,初学者可能有些地方会觉得陌生,看不明白,不用着急,在后文中会对涉
及的知识点逐个进行讲解
@Test
public void wholeExample(){
try {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取数据库连接
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/test",
"root","r66t");
//3.创建执行句柄
Statement stmt = conn.createStatement();
//4.执行sql语句
ResultSet rs = stmt.executeQuery("select * from user");
//5.处理执行结果
while(rs.next()){
System.out.println("id:"+rs.getInt(1)+"\tname:"+rs.getString(2)+"
\tbirthday:"+rs.getDate(3)+"\tmoney:"+rs.getFloat(4));
}
//6.释放资源
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
执行结果如下
id:1 name:wangwenjun birthday:1984-06-09 money:8500.0
id:2 name:zhangsan birthday:2010-01-01 money:15000.0
剩余100页未读,继续阅读
li283393227
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 数据结构1800题含完整答案详解.doc
- 医疗企业薪酬系统设计与管理方案.pptx
- 界面与表面技术界面理论与表面技术要点PPT学习教案.pptx
- Java集合排序及java集合类详解(Collection、List、Map、Set)讲解.pdf
- 网页浏览器的开发 (2).pdf
- 路由器原理与设计讲稿6-交换网络.pptx
- 火电厂锅炉过热汽温控制系统设计.doc
- 企业识别CIS系统手册[收集].pdf
- 物业管理基础知识.pptx
- 第4章财务预测.pptx
- 《集成电路工艺设计及器件特性分析》——实验教学计算机仿真系.pptx
- 局域网内共享文件提示没有访问权限的问题借鉴.pdf
- 第5章网络营销策略.pptx
- 固井质量测井原理PPT教案.pptx
- 毕业实习总结6篇.doc
- UGNX建模基础篇草图模块PPT学习教案.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0