1,PreparedStatement 预处理语句对象是Statement的子接口
*避免SQL注入
*提高多次执行同一条SQL语句的效率
*SQL语句的可读性更好
只要SQL中需要拼接java变量,就使用PreparedStatement接口的使用:
*SQL语句中有java变量,该JAVA变量使用?作为占位符
select * from ajia_user where username = ? and password = ?;
*实例化
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
*实例化期间传SQL
PreparedStatement pstmt = conn.prepareStatement(sql);
装配占位符?的值
pstmt.setString(1,username);
pstmt.setString(2,password);
*执行SQL语句
执行查询:
pstmt.executeQuety();
执行增删改语句:
pstmt.execteUpdate();
2,将数据库的连接信息保存到属性文件中
*在src目录中,创建db.properties属性文件
属性文件中保存数据以kry=value的形式
属性文件中不能直接保存中文
属性文件中key,value直接写,没有任何符号
*解析属性文件
Properties继承Hashtable
load(InputStream in); 加载属性文件
String getProperty(String kry); 根据key获取value
3,连接池
*提高效率
不需要对应所有的请求,临时创建新的连接
*可以管理连接数
*成熟的连接池组件
DBCP DataBase Cinnextion Pool
c3p0
4,JDBC中的事物处理
事务:一组操作的逻辑单元
一组添加 一组删除 一组更新
事务具备四个特性(ACID)
原子性(Atonmicity)一个事务是一个不可分割的逻辑单元
一个事务中,所有的操作要么都成功,要么都失败
一致性(Consistency)事务执行的前后,保证数据的完整性
完整性:完备性和正确性
外键字段的值叙事引用其他主键字段的值
删除主表的数据,从表必须被修改或删除
隔离性(Isolation),多个事务并发执行,事务之间互不干扰
数据库软件都有默认的事物隔离级别