JDBC & XML
- JDBC是访问数据库标准规范(接口)。
- 使用预处理对象PreparedStatement解决sql注入问题。
- Statement对象每执行一条SQL语句,就会发给数据库,数据库要先编译再执行。
- PreparedStatement将SQL发给数据库进行一个预编译,然后将预编译的SQL保存起来, 这样只需要编译一次。
- 多次操作只需设置参数。
方法 | 说明 |
---|---|
void setAutoCommit(boolean autoCommit) | 参数是 true 或 false 如果设置为 false,表示关闭自动提交,相当于开启事务 |
void commit() | 提交事务 |
void rollback() | 回滚事务 |
- 连接池管理数据库连接,可以重复使用连接,关闭连接,不代表销毁Connection,只是将连接进行归还。
- Java为数据库连接池提供了公共接口:java.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。
- 常见的连接池:DBCP连接池、C3P0连接池、Druid连接池
- 常见配置项
属性 | 描述 |
---|---|
driverClassName | 数据库驱动名称 |
url | 数据库地址 |
username | 用户名 |
password | 密码 |
maxActive | 最大连接数量 |
maxIdle | 最大空闲连接 |
minIdle | 最小空闲连接 |
initialSize | 初始化连接 |
1. QueryRunner 中提供对sql语句操作的API.
2. ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
3. DbUtils类,他就是一个工具类,定义了关闭资源与事务处理相关方法.
- 可以将一张表看作一个类
- 一条数据对应一个对象
1. 需要实现序列化接口(Serializable)
2. 提供私有字段
3. 提供getter和setter
4. 提供空参构造
- 批处理指的是一次操作中执行多条SQL语句。
- Statement和PreparedStatement都支持批处理
方法 | 说明 |
---|---|
void addBatch() | 将给定的SQL命令添加到此Statement对象的当前命令列表中。通过调用方法executeBatch可以批量执行此列表中的命令。 |
int[] executeBatch() | 每次提交一批命令到数据库中执行,如果所有的命令都成功执行了,那么返回一个数组,这个数组是说明每条命令所影响的行数 |
- 除了表之外的数据都是元数据。可分为3类:
- 查询结果信息:UPDATE或DELETE语句受影响的记录数
- 数据库和数据表的信息:包含数据库及数据表的结构信息
- MySQL服务器信息:包含服务器当前的状态,版本号等
1. 存储数据
2. 配置文件
3. 使用XML在网络中传输数据
- 将整个XML读取到内存中,生成一个document对象
- 优点:元素之间有结构关系,可以进行CRUD
- 缺点:占用内存多
- 边扫描边执行,速度块=快
- 优点:占用内存少,速度快
- 缺点:只能进行解析(读)
- API