Spring Boot整合持久層
整合持久層就是和資料庫打交道,這裡以mysql為例。
1.準備工作
首先建立一個數據庫和表,程式碼如下:
View Code然後建立springboot的專案。
2.整合JdbcTemplate
第一步:匯入依賴
View Code其中lombok可以匯入也可以不匯入,這裡是為了使用get和set方法方便。
第二步:配置資料來源,這裡使用的配置檔案是application.yml
View Code第三步:建立類Book
View Code第四步:建立類BookController
View Code第五步:建立類BookService
View Code第六步:建立類BookDao
第七步:測試。啟動專案,在瀏覽器輸入localhost:8080/book/abbBook即可向資料庫新增設定的資料,同理其他的幾個介面也可以使用。到這裡SpringBoo整合JdbcTemolate已經完成了,至於從前端向controller的介面傳遞資料,這裡暫時不講。
3.整合MyBatis
第一步:匯入依賴
View Code第二步:類Book,類BookController同上,而BookService中只需把@Autowired中的BookDao改成BookMapper即可,其他同上。
第三步:建立介面BookMapper
View Code第四步:建立BookMapper.xml檔案
在資源目錄下先建立mapper目錄,在目錄下建立一個名為BookMapper.xml的檔案
View Code第五步:修改yml檔案
View Code第六步:啟動專案,進行測試,介面可以正常使用。
4.整合Spring Data JPA
JPA是一種ORM規範,Hibernate是一個ORM框架,因此JPA相當於Hibernate的一個子集。這裡只需要有資料庫即可,就是要test1資料庫,不需要手動建立表,。
第一步:匯入依賴
View Code第二步:資料庫配置
View Code第三步:建立實體類Book
View Code第四步:建立類BookController
View Code第五步:建立類BookService
View Code第六步:建立介面BookDao
View CodeBookDao中沒有寫方法,原因是jpa中有一些常用的方法。
5.配置多資料來源
多資料來源就是javaEE專案中採用了不同資料庫例項中的 多個庫,或者同一個資料庫例項中多個不同的庫。
1)JdbcTemplate多資料來源
第一步:建立兩個資料庫test1,test2,然後在兩個資料庫中分別建立一個book,並插入一條不同的內容,建立test1的指令碼如下,test2同
View Code第二步:新增依賴
View Code第三步:配置資料庫
View Code第四步:配置多資料來源
View Code第五步:配置JdbcTemplate
View Code第六步:建立類BookController
為了簡單化,這裡就直接使用controller來注入JdbcTemplate,在實際開發中需規範化。
View Code第七步:測試
啟動專案,在瀏覽器輸入localhost:8080/book/get即可看到查詢的兩個資料庫的所有結果。
2)Mybatis多資料來源
第一步:上面已經詳細的介紹了一些配置資訊,這裡就不再贅述。兩個資料庫同上,資料庫配置同上,多資料來源配置同上。依賴也只是把Spring-boot-starter-jdbc替換成mybatis的依賴即可,mybatis的依賴如下:
View Code第二步:配置Mybatis
第一個配置類
View Code第二個配置類
View Code第三步:在包com.example.demo.dao和com.example.demo.dao2分別建立介面BookMapper和BookMapper2
View Code View Code第四步:在上面兩個包中分別建立BookMapper.xml,BookMapper2.xml
View Code View Code第五步:建立BookController
View Code第六步:啟動專案,進行測試。
6.整合Mybatis出現null
當前端傳入的資料給後臺,一個物件中有的屬性為null時mybatis是不能進行插入操作的,但是需求是這些為null的值得轉換為空字串存入到資料庫,其中的一個解決辦法如下:
第一步:建立一個類,用於轉換型別是字串,值為null的屬性
View Code第二步:在mybatis的BookMapper.xml中修改如下
View CodetypeHandler的值是NullValueHandler所在的路徑,這樣當前臺傳入的值為null時後臺就可以正常插入了。
就是這麼簡單,你學廢了嗎?感覺有用的話,給筆者點個贊吧 !