03.01 spring中為什麼是通過連接獲取操作數據庫的對象?

調調su


數據庫作為一個提供了強大的關係型持久存儲和查找的數據模型,通常操作數據庫需要使用專門的結構化語言(SQL)進行操作,而連接不同的數據庫(oracle,mysql,sqlserver等)所需要註冊的驅動都不同,導致其他語言連接數據庫存在困難!

而JAVA中抽象了一組連接數據庫的接口和類,jdbc(JAVA database connectivity)專門為不同的數據庫提供統一的標準進行連接,可以說無論連接數據庫的框架怎麼封裝,底層都是使用的java jdbc!


下面看下jdbc連接數據庫的步驟:

①,註冊驅動:不同的數據庫提供商會提供不同的驅動類進行註冊使用,通常使用JNDI反射的方式進行,eg: Class.forName("com.mysql.jdbc.Driver");

②,創建連接:包括數據庫連接地址,庫,用戶名和密碼用於連接數據庫服務並進行認證,eg:Connection connection = DriverManager.getConnection(x,x,x);

③,執行SQL:創建statement對象,獲取執行sql的實例,調用SQL的執行方法!eg:Statement s =connnection.createStatement();s.excuteQuery("select * fron t");

④,組裝結果:statement中執行方法會得到相應的返回值,使用resultSet進行接受後處理數據!eg:ResultSet r=s.excuteQuery();

String name =r.getString("name");

⑤,關閉連接:至關重要的一步,因為像oracle就是根據連接時間進行收費的,如果一直開著連接,破產指日可待!connection.close();

上面提到了,任何其他的JAVA框架(mybatis,hibenate,springTemplate等)基本都是封裝了原生的jdbc進行操作數據庫,所以免不了上訴幾個步驟!


我們看到,對於數據庫驅動註冊,連接開啟和關閉這些與業務無關的東西其實並不是開發者關心的,所以進一步的封裝很有必要!

spring是怎麼進行封裝的呢?

1,封裝驅動註冊和連接:spring通過dbcp等數據源實現包,只需要配置數據庫驅動信息,連接信息等就可以實現自動註冊和連接數據庫,並通過配置destroy-method =true就可以在自動關閉連接!

2,提供jdbcTemplate更為豐富的API,實現更加簡便的開發流程,包括增刪改查,batch處理等!

如下面代碼所示:

jdbcTemplate.queryForInt("select count(*) from test"); //2. 查詢一行數據並將該行數據轉換為Map返回 jdbcTemplate.queryForMap("select * from test where name='name5'"); //3.查詢一行任何類型的數據,最後一個參數指定返回結果類型 jdbcTemplate.queryForObject("select count(*) from test\

此生唯一



Spring Boot可以大大簡化持久化任務,幾乎不需要寫SQL語句,在之前我們新建了一個

Spring Boot應用程序,本章在原有的工程中與數據庫建立連接。

Spring Boot有兩種方法與數據庫建立連接,一種是使用,另一種集成,下面分別為大家介紹一下如何集成和使用這兩種方式。

1. 使用JdbcTemplate

在resource文件夾下添加application.properties配置文件並輸入數據庫參數,內容如下:

新建Controller類測試數據庫連接,實例如下:

運行App輸入地址輸出數據庫數據。

2. 集成Mybatis

添加mybatis依賴,在pom.xml文件中增加如下:

在resource文件夾下添加application.properties配置文件並輸入數據庫參數,如下:

依次添加mapper的接口類和xml文件,類分別如下:

AppMessageMapper.java

AppMessageMapper.xml

AppMessage.java

AppMessageService.java

APPMessageController.java

問題描述?

SpringBoot掃描包提示找不到mapper的問題,異常信息:

分析原因

項目的Bean裝配默認規則是根據類所在的包位置從上往下掃描,“類”是指項目入口類。如果類所在的包為:,則只會掃描包及其所有子包,如果service或dao所在包不在及其子包下,則不會被掃描。

解決方法

方式一:使用註解,其中,為包路徑。

方式二:將啟動類放在上一級包中,注意的是啟動類必須要保證在包的根目錄下。


優秀的程序員


java操作關係型數據庫的底層都是JDBC

下面看下jdbc連接數據庫的步驟:

①,註冊驅動

②,創建連接

③,執行SQL

④,組裝結果

⑤,關閉連接

任何其他的JAVA框架(mybatis,hibenate,springTemplate等)基本都是封裝了原生的jdbc進行操作數據庫,所以免不了上訴幾個步驟

只看到一位仁兄答對!@哎喲JAVA不錯


回答完畢謝謝!!

本人專注大數據,數據採集,數據處理,數據治理,希望大家多多交流學習!


分享到:


相關文章: