使用Java時,如何高效的讓數(shù)據(jù)庫訪問Spring JDBC?
網(wǎng)友解答: 這個問題雷到我了,數(shù)據(jù)庫訪問spring JDBC?我就權(quán)當做問題是在JAVA中,如何使用spring jdbc操作數(shù)據(jù)庫來答吧!spring jdbc是jdk自帶的jdbc
這個問題雷到我了,數(shù)據(jù)庫訪問spring JDBC?
我就權(quán)當做問題是在JAVA中,如何使用spring jdbc操作數(shù)據(jù)庫來答吧!
spring jdbc是jdk自帶的jdbc的封裝版,原生的jdbc提供連接各種數(shù)據(jù)庫的類,可以通過配置不同的驅(qū)動類型,連接不同的數(shù)據(jù)庫服務器!
先來看下具體jdbc怎么連接數(shù)據(jù)庫的吧?
1,注冊驅(qū)動:比如連接mysql的驅(qū)動com.mysql.jdbc.Driver,注冊驅(qū)動相當于連接的門票!
2,連接:數(shù)據(jù)庫也是服務,需要數(shù)據(jù)傳輸,所以需要連接,使用DriverManager.getConnection()來連接數(shù)據(jù)庫!中間參數(shù)為:jdbc:mysql://127.0.0.1:3306/user
3,寫sql并執(zhí)行:Statement對象中有執(zhí)行(excute)方法!
4,處理返回值:使用ResultSet封裝sql返回的結(jié)果!
這樣就完成了jdk jdbc與數(shù)據(jù)庫的交互!
而spring jdbc進一步封裝了原生的jdbc,通過配置驅(qū)動信息,在初始化bean的時候就完成了數(shù)據(jù)庫連接。
對外提供了JdbcTemplate類和相應的接口來完成上訴的sql操作和返回數(shù)據(jù)封裝!主要使用的API有excute,queryForObject等!
通過注入@autoWired private JdbcTemplate jdbcTemplate進行業(yè)務層的數(shù)據(jù)庫處理,只需要定義sql和定義結(jié)果返回的映射對象即可!
性能方面:因為spring jdbc提供了批量處理操作batchUpdate,所以在多數(shù)據(jù)時盡量選擇批處理!
既然對原生的jdbc做了封裝,而方便使用者的快速開發(fā),但是肯定是有性能損耗的!下圖為借鑒的jdbc,spring jdbc,mybatis的性能對比圖片,在此謝過!
可以看出,無論讀寫!性能從好到差依次為原生spring jdbcmybatis,性能差別其實不大,但是無疑mybatis是最方便使用的,根據(jù)自己的需要選擇最合適的即可!
盡量每天都有更多的技術(shù)分享,敬請期待。。。