JDBC復習


1.      Jdbc基礎準備 junit(單元測試的工具)

a)      main函數進行測試的問題

b)     Junit單元測試工具
替換main函數,進行java代碼測試的。
junit工具的使用

i.         引入junit相關庫文件 .jar ---- lib

ii.       創建測試類

iii.     初學者常見問題清單

1.      把測試類的名字 命名為Test 導致不能自動導報

2.      測試方法沒有加入 @Test注解導致如下2個問題

a)      測試方法不能運行

b)     出現異常

3.      技巧
應用F2快捷鍵 可以自動引入junit測試庫

2.      JDBC技術的引言

a)      什么是JDBC技術
應用Java程序,訪問操作數據庫。底層代碼。

b)     JDBC訪問數據庫的核心思想

c)      JDBC的編程步驟
環境搭建  導入 oracle的驅動jar

1.      加載驅動 目的 oracle對于3個接口的實現讀入程序中。

2.      創建連接Connection  注意:提供用戶名 密碼

3.      創建PreparedStatement執行sql語句  注意提供sql語句

4.      若進行的查詢操作,ResultSet應處理查詢結果

5.      關閉資源。

d)     動態參數
sql語句中的數據,動態化。
String sql = insert into t_user (id,name,birthday) values (?,?,?);
pstmt = conn.prepareStatment(sql);
pstmt.setXXX();
pstmt.setString();
pstmt.setInt();
pstmt.setDouble();
pstmt.setDate();

pstmt.executeUpdate();

i.         日期類型的處理
java.util.Date:平時推薦使用的時期類型。不能應用在jdbc操作中。
java.sql.Date : 特點 代表時間只能用JDBC操作中

ii.       插入數據時 oracle的主鍵自動增長

1.      建立sequence序列

2.      String sql = “insert intot_user (id,name,birthday) values (user_seq.nextval,?,?)”

 

e)      修改與刪除

f)       JDBC中的查詢

i.         ResultSet對象的使用
代表的是,這次查詢的結果。








g)      常見錯誤

i.         為什么程序沒有顯示錯誤
原因:catch塊中沒有e.printStackTrace();

ii.       java.lang.ClassNotFoundException產生原因
1 類名字書寫錯誤
2 沒有導入相關的jar包

iii.     java.sql.SQLException
與sql語句相關的錯誤
1 約束錯誤
2 表名列名書寫錯誤
把sql運行在數據庫中

iv.    Io 異常:The Network Adapter could not establish the connection
1 oracle服務的監聽器問題
2 oracle:jdbc:thin:@ip 問題

 ==================================================

1.      JdbcUtil工具類的封裝

a)      基礎版本的JDBCUtil的封裝

b)     提高版JDBCUtil 引入 配置文件。

開發步驟 (基礎版JDBCUtil)

1.      準備小的配置文件
.properties結尾

2.      把代碼中經常變化的字符串 刪除

3.      通過輸入流把配置文件的內容 讀入到程序中

2.      DAO(DataAccess Object 數據訪問對象)設計思想

a)      ORM(ObjectRelationship Mapping)編程思想

b)     DAO設計思想

c)      DAO的開發步驟

i.         建表

ii.       實體類(entity)

iii.     定義DAO接口

iv.    應用JDBC書寫DAO接口的實現類


1.      Service(Biz  Business) 業務層處理
業務層,就代表的是用戶完成的一個功能,操作。它是由DAO的調用(多次調用DAO的方法)組成。

a)      基本開發方式

i.         Service功能的抽取

ii.       Service開發的標準方式

iii.     Java系統的開發過程

1.      Table

2.      Entity

3.      DAO接口

4.      DAO的實現類

5.      Service接口

6.      Service接口的實現類

iv.    事務(Transaction TX)
一個業務方法中的一組DAO方法要不一起成功,要不一起失敗

1.      事務的控制位置?
在Service中的業務方法內。

2.      事務控制的代碼如何書寫

a)      注意:JDBC會把一條增、刪、改操作自動加入事務?!靜緩?沒有必要 容易產生問題】

b)     手工控制事務【重點】
connection#.setAutoCommit(false); 手工開啟事務
connection#commit(); 手工提交事務
connection#rollback();手工回滾事務

c)      控制事務代碼的最佳實踐

i.         問題 service控制事務 需要Connection
     DAO進行操作 也需要Connection
     所以要保證Service中Connection與DAO
     是一致的
解決訪問1 把Connection作為DAO接口的參數

     2 線程綁定(TheadLocal)
       保證通過線程綁定的對象,一個線程中獲得的是相同的
       對象,不同的線程中獲得的是不同的對象
       



注意:引入了事務后,Connection關閉在Service層,而其他JDBC組件關閉在DAO層。


1.      MyElicpse工具連接數據庫。

2.      分頁查詢

a)      分頁的基本封裝

b)     補充:為啥DAO接口要用List集合?

3.      事務TX封裝

a)      Connection為什么不能作為成員變量呢?

4.      JDBC代碼與工廠設計的模式結合

a)      工廠設計模式(GOF 4人幫 23種設計模式之一)
工廠類中的工廠方法負責對象的創建(生產)。
好處:解耦和

b)     工廠版本一

c)      通用的工廠

d)     通用工廠類的使用文檔 API

i.         創建類

ii.       書寫配置文件

iii.      創建工廠并調用getBean方法獲得對象
ApplicationContext<OrderService> c = new ApplicationContext<OrderService>();
對象 = c.getBean(“key”);

5.      基于封裝后的JDBC的開發步驟總結

6.      自定義Spring框架中的JdbcTemplate (23種設計 模板)
問題:DAO實現類中的代碼冗余

來源:itnose

上一篇: 淺談JDBC

下一篇: Mysql連接問題:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException

分享到: 更多
求时时彩后一稳赚方法 pc蛋蛋投注 大乐透在线机选号码 河北时时平台下载 老时时彩基本走势图 天天乐棋牌 大乐透最佳投注方案 7m篮球即时比分直播 重庆时时彩网 明牌抢庄斗牛技巧最新 双色球投票截止时间 宝马棋牌下载 万人炸金花最新版2016 mg线上娱乐客服电话 来几局百人牛牛有规律不 ag平台有漏洞吗