JDBC和JDBCtemplate區別
文章來自 https://blog.csdn.net/qq_39651022/article/details/78478571
1.背景介紹
Java程序員在以後的工作中很重要的一點就是得和數據庫打交道,但是代碼和數據庫是兩個不相幹的.
怎麽使用代碼對數據庫進行操作呢,這個時候就用到JDBC。
2.知識剖析
什麽是JDBC?
①JDBC(Java DataBase Connectivity,java數據庫連接)是一種用於執行SQL語句的Java API,
可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。
而多的這個template,就是模板,是Spring框架為我們提供的.
所以JDBCTemplate就是Spring對JDBC的封裝,通俗點說就是Spring對jdbc的封裝的模板
3.常見問題
jdbc做了什麽?
JDBCTemplate做了什麽?
jdbcTemplate是怎麽做到的?
4.解決方案
JDBC的原理就是通過Connection這個類獲取數據庫的連接,
然後通過PreparedStatement類處理SQL語句,再通過它的.setObject方法傳入數據,
最後通過方法.executeUpdate()和.executeQuery()執行更新,這就是JDBC的基本原理。
JDBCTemplate幫我們省去了很多麻煩.
②指定數據庫連接參數.
打開數據庫連接.
預編譯並執行SQL語句.
遍歷查詢結果(如果需要的話).
處理拋出的任何異常.
處理事務.
關閉數據庫連接
那麽JDBCTemplate怎麽做到的,這就和spring有關系了
SpringIOC容器將管理數據庫連接的數據源當作普通Java Bean一樣管理,
然後將數據源註入封裝類JdbcTemplate中,:
JdbcTemplate的dataSource屬性就是註入配置的數據源
5.編碼實戰
6.擴展思考
JdbcTemplate對JDBC的差別在哪?
jdbc需要每次進行數據庫連接, 然後處理SQL語句,傳值,關閉數據庫.
甚至有時還可能會出現數據庫忘記關閉導致連接被占用.
在以後的工作中,客戶的需求肯定不是一成不變的,這就導致經常會改動數據庫內容.
通過JDBCtemplate我們只需更改需要更改的那一部分內容就可以了,不需要進行全局修改.
Spring將替我們完成所有的JDBC底層細節處理工作.
7.參考文獻
①百度
②http://www.cnblogs.com/binyue/p/4037628.html
8.更多討論
(1)使用 jdbc.properties 有什麽好處?
假如我們需要更改連接數據庫的配置,我們直接在jdbc.properties裏面更改一次就可以了.而JDBC的話需要增刪改查裏面每個連接數據庫的配置都需要更改.
(2)如果真的發生數據庫連接資源被占用,有什麽解決方法
修改 MySQL 安裝目錄下 my.ini 或者 my.cnf 文件內的 max_user_connections 參數的數值,重啟 MySQL 服務器。
(3)jdbctemplate和mybatis分別在什麽情況下使用,jdbc template 和spring+mybatis一樣嗎?,和mybatis相比有什麽優缺點?
這三個問題其實差不多.JDBCTemplate和Mybatis不一樣,Mybatis的sql語句放在了mapper.xml文件裏面.相當於配置在了環境當中,隨時都可以使用. 而JDBCTemplate則是寫在了實現類裏面,使用的時候還要進行重新調用配置之類的. 以後的工作中可能對多個表進行操作,配置在環境中使用起來非常方便.
(4)如何來控制數據庫的打開關閉.
Class.forName("com.mysql.jdbc.Driver"); 這個初始化驅動就是打開了數據庫鏈接
Connection c = DriverManager.//連接數據庫,
//關閉數據鏈接
ps.close();
c.close();
而JDBCTemplate的打開關閉則是封裝在JDBCTemplate當中.
(5)jdbc 和 jdbctemplate 相比 效率有差別麽
單從效率方面來說,實際上jdbc比jdbctemplate的效率會高一點.jdbcTemplate則更方便我們進行更改內容,和理解當中的邏輯.
(6)jdbcTemplate 實現執行多條sql語句.
一種直接用mysql的批量處理語句.
另外一種拼接SQL語句直接一次性提交多少條數據.
(7)jdbcTemplate有什麽缺點
必須於Spring框架結合在一起使用、不支持數據庫跨平臺、默認沒有緩存.
JDBC和JDBCtemplate區別