1. 程式人生 > >JDBC和JDBCtemplate區別

JDBC和JDBCtemplate區別

date() 好處 mybatis 多個 database 什麽 文章 幫我 剖析

文章來自 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區別