1锄开,PreparedStatement 預處理語句對象是Statement的子接口
*避免SQL注入
*提高多次執(zhí)行同一條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);
*執(zhí)行SQL語句
執(zhí)行查詢:
pstmt.executeQuety();
執(zhí)行增刪改語句:
pstmt.execteUpdate();
2炎疆,將數(shù)據(jù)庫的連接信息保存到屬性文件中
? ? *在src目錄中调塌,創(chuàng)建db.properties屬性文件
????????屬性文件中保存數(shù)據(jù)以kry=value的形式
? ? ? ? 屬性文件中不能直接保存中文
? ? ? ? 屬性文件中key,value直接寫逆害,沒有任何符號
*解析屬性文件
Properties繼承Hashtable
load(InputStream in);????加載屬性文件
String getProperty(String kry); ? ?根據(jù)key獲取value
3,連接池
*提高效率
? ? 不需要對應所有的請求头镊,臨時創(chuàng)建新的連接
*可以管理連接數(shù)
*成熟的連接池組件
? ? DBCP DataBase Cinnextion Pool
? ? c3p0
4,JDBC中的事物處理
? ? 事務:一組操作的邏輯單元
????????一組添加 ? ?一組刪除 ? ?一組更新
????????????事務具備四個特性(ACID)
原子性(Atonmicity)一個事務是一個不可分割的邏輯單元
一個事務中蚣驼,所有的操作要么都成功魄幕,要么都失敗
一致性(Consistency)事務執(zhí)行的前后,保證數(shù)據(jù)的完整性
完整性:完備性和正確性
外鍵字段的值敘事引用其他主鍵字段的值
刪除主表的數(shù)據(jù)颖杏,從表必須被修改或刪除
隔離性(Isolation)纯陨,多個事務并發(fā)執(zhí)行,事務之間互不干擾
? ? ? ? 數(shù)據(jù)庫軟件都有默認的事物隔離級別