java学习

NO.51 JDBC核心API

2017-08-21  本文已影响0人  smallnumber

一.连接池(数据源)

1.直接使用DriverManager的问题

它没有管理连接上限,并发量大时很容易导致数据库崩溃

每次调用它,它都创建新连接,而不是复用连接,效率低

2.连接池可以解决上述问题

它能管理连接上限,避免数据库崩溃

它可以让我们复用连接,提高效率

3.连接池的工作场景

创建连接池对象时,它会自动连接数据库,并创建一批(配)连接(空闲)当调用连接池方法时,它会返回一个连接,并将此连接标记为占用态;

当使用完连接后,需将连接归还给连接池,它会将连接数据清空,标记为空闲态

当连接池发现空闲连接即将用尽(配)时,它会再次自动创建一批(配)新连接

当占用连接已达数据库上限(配)时,连接池会让调用者等待

当高峰期过后,连接池会自动关闭一批(配)连接

4.有哪些常用连接池?

DBCP

C3P0

5.要点

连接池由sun设计出接口DataSource

由厂商提供实现类(DBCP提供的实现类是BasicDataSource)


二.Statement和PreparedStatement

1.它们的联系

它们都能够执行SQL

PreparedStatement extendsStatement

2.它们的区别(面试题)

Statement适合执行静态(无条件)SQL

PreparedStatement适合执行动态(有条件)SQL

3.Statement运行原理

4.PreparedStatement运行原理

5.使用PreparedStatement可以避免注入攻击


三.ResultSet

1.结果集的指针

2.ResultSetMetaData

结果集元数据:对结果集进行描述(概括)的数据

包含:多少列,列名,列的类型

3.可跳动结果集

几乎不用


JDBC支持如下的日期类型

java.sql.Date年月日

java.sql.Time时分秒

java.sql.Timestamp完整日期

上述日期都是java.util.Date的子类


代码示例:利用连接池获取连接的封装

DBUtil工具

其中db.properties文件内容如下:

db.properties配置文件

测试代码:

测试连接及删除示例 查询示例 插入数据示例 查询核对账号密码示例 查看ResultSet概括信息示例

实现转账功能:

假设当前用户已经登录了网银,他已经输入了收款方的账号,和要转出的金额.他点击了转账按钮,服务器接收了相关的数据,开始进行转账.

转账的步骤:

1.查询付款方余额够不够

2.查询收款方账号,看对不对

3.修改付款方的余额,-N元

4.修改收款方的余额,+N元

上一篇 下一篇

猜你喜欢

热点阅读