JDBC是Java數(shù)據(jù)庫連接技術(shù)的簡稱臼寄,提供連接各種常用數(shù)據(jù)庫的能力
什么是持久化
持久化就是講程序中的數(shù)據(jù)在瞬時狀態(tài)和持久狀態(tài)間轉(zhuǎn)換的機制
持久化的實現(xiàn)方式
1數(shù)據(jù)庫
2普通文件
3 XML文件
持久化的操作
1.刪除2.修改3.保存4.查找5.讀取
什么是DAO
1.Data Access Object(數(shù)據(jù)存取對象)
2.位于業(yè)務(wù)邏輯和持久化數(shù)據(jù)之間
3.實現(xiàn)對持久化數(shù)據(jù)的訪問
4.DAO起著轉(zhuǎn)換器的作用,把實體類轉(zhuǎn)換為數(shù)據(jù)庫中的記錄
DAO模式起的作用
1.隔離業(yè)務(wù)邏輯代碼和數(shù)據(jù)訪問代碼
2.隔離不同數(shù)據(jù)庫的實現(xiàn)
DAO模式的組成部分
DAO接口
DAO實現(xiàn)類
實體類
數(shù)據(jù)庫連接和關(guān)閉工具類
DAO模式的實際應(yīng)用
/**
* BaseDao的實現(xiàn)類
*
* @author beiwo
*
*/
public class BaseDaoImpl implements BaseDao {
/**
*增戳葵,刪,改的操作
* update dog set name=?,password=? where id=?
* @param sql預(yù)編譯的sql語句
* @param預(yù)編譯的sql語句中的'?'參數(shù)的字符串數(shù)組
* @return影響的行數(shù)
*/
@Override
public int executeUpdate(String sql, Object[] param) {
int num = 0;
Connection conn = null;
PreparedStatement pstmt = null;
try {
//獲取Connection
conn = DBUtils.getConn();
pstmt = conn.prepareStatement(sql);
if (null != param) {
for (int j = 0; j < param.length; j++) {
pstmt.setObject(j + 1, param[j]);
}
}
num = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtils.closeAll(null, pstmt, conn);
}
return num;
}
}