-
1 # 此生唯一
-
2 # Java非著名程式設計師
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所在包不在及其子包下,則不會被掃描。
解決方法
方式一:使用註解,其中,為包路徑。
方式二:將啟動類放在上一級包中,注意的是啟動類必須要保證在包的根目錄下。
-
3 # 一席話君
java操作關係型資料庫的底層都是JDBC
下面看下jdbc連線資料庫的步驟:
①,註冊驅動
②,建立連線
④,組裝結果
⑤,關閉連線
任何其他的JAVA框架(mybatis,hibenate,springTemplate等)基本都是封裝了原生的jdbc進行操作資料庫,所以免不了上訴幾個步驟
只看到一位仁兄答對!@哎喲JAVA不錯
本人專注大資料,資料採集,資料處理,資料治理,希望大家多多交流學習!
回覆列表
資料庫作為一個提供了強大的關係型持久儲存和查詢的資料模型,通常操作資料庫需要使用專門的結構化語言(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", Integer.class); //4.查詢一批資料,預設將每行資料轉換為Map jdbcTemplate.queryForList("select可以說springTemplate的封裝十分輕量級,可以用於替代原生jdbc的開發,不過現在大多數企業都是用的mybatis,提供快取,動態SQL,方便的對映的ORM框架,是值得學習的資料庫操作框架,今天的分享就到這,更多的技術分享,敬請關注!!