JDBC:? Java數(shù)據(jù)庫連接技術,提供鏈接各種常用數(shù)據(jù)庫的功能
DriverManager:根據(jù)數(shù)據(jù)庫,管理JDBC驅(qū)動
Connection:負責連接數(shù)據(jù)庫并擔任傳送數(shù)據(jù)的任務
Statement:由Connection產(chǎn)生,負責執(zhí)行SQL語句
ResultSet:負責保存Statement執(zhí)行后產(chǎn)生的查詢結果
用法:
1.Class.forName(驅(qū)動類)加載JDBC驅(qū)動
2.Connection conn = DriverManager.getConnection(url,user,password)與數(shù)據(jù)庫創(chuàng)建連接返回一個Connection對象
3.Statement state = conn.creatStatement();
tate.execute(sql)執(zhí)行sql語句 可執(zhí)行增刪改等操作
ResultSet rs = tate.executeQuery(sql)獲取查詢操作返回的結果
4.關閉資源 遵循先開后關原則
由于Statement可能會產(chǎn)生SQL注入的問題,為了解決這個問題,應該使用PreparedStatement接口,它繼承與Statement并且使用起來更加靈活,提高了代碼的可讀性與可維護性
用法與Statement基本相同,不同的是SQL語句中可以用‘?’作為占位符,實例調(diào)用setObject(index,object)為其賦值
DAO模式:
定義:
Data Access Object(數(shù)據(jù)存取對象)
位于業(yè)務邏輯持久化數(shù)據(jù)之間
實現(xiàn)對持久化數(shù)據(jù)的訪問
作用:
隔離業(yè)務邏輯代碼與數(shù)據(jù)訪問
隔離不同數(shù)據(jù)庫的實現(xiàn)
組成:
DAO接口
DAO實現(xiàn)類
實體類
數(shù)據(jù)庫連接與關閉工具類(幫助類)
個人理解用法:
1.創(chuàng)建數(shù)據(jù)庫工具類接口與實現(xiàn),幫助類.創(chuàng)建相應數(shù)據(jù)庫
2.創(chuàng)建實體類,添加實體相應接口繼承于數(shù)據(jù)庫工具接口(BaseDao),實現(xiàn)類繼承于數(shù)據(jù)庫工具類實現(xiàn)類,并實現(xiàn)接口
3.根據(jù)需要向接口聲明方法在實現(xiàn)類實現(xiàn)(僅關于數(shù)據(jù)庫的操作)
4.創(chuàng)建業(yè)務邏輯接口與實現(xiàn)類來處理相應業(yè)務邏輯(業(yè)務邏輯類只用調(diào)用DAO接口即可,僅處理業(yè)務邏輯)
分層思想:JDBC用來操作數(shù)據(jù)庫,通過service層將隔離數(shù)據(jù)訪問層,通過實體類傳遞數(shù)據(jù),將業(yè)務邏輯與數(shù)據(jù)操作分離開,分層結構.
開始流程:
1:建立數(shù)據(jù)庫epet,建表;
2:創(chuàng)建實體類,和相應的數(shù)據(jù)庫的表是對應的;com.beiwo.epet.entity
3:創(chuàng)建Dao的基類接口類BaseDao;com.beiwo.epet.dao.BaseDao
4:創(chuàng)建Dao的實現(xiàn)類BaseDaoImpl;com.beiwo.epet.dao.impl.BaseDaoImpl
5:創(chuàng)建具體表的Dao類,PetDao;com.beiwo.epet.dao.PetDao
6:創(chuàng)建具體表的Dao實現(xiàn)類,
PetDaoMysqlImpl;com.beiwo.epet.dao.impl.PetDaoMysqlImpl
7:創(chuàng)建業(yè)務邏輯層的接口類,PetService;com.beiwo.epet.service.PetService
8:創(chuàng)建業(yè)務邏輯層的接口實現(xiàn)類,
PetServiceImpl;com.beiwo.epet.service.impl.PetServieImpl
9:創(chuàng)建測試類。