springboot工程中各个层次的作用+springboot连接数据库的工具汇总+Mybatis的开发方式/语法
下面這個是hibernate的相關工程
?
下面這個是Mybatis的相關工程
\
可以看出無論使用哪一種,方式都是一致的.
?
------------------------------------------------
?
| 文件夾 | 作用 |
| App | 類似于Django的manage.py,啟動入口 |
| Controller | 路由和業務邏輯 |
| Service | 寫一些被Controller調用的邏輯 |
| Repository(DAO/Mapper層) | Hibernate在這個層寫一些類似SQL的語句,被Service層調用 ? Mybatis在這個層寫SQL |
| bean(Model/Entity層) | 代碼中的表格映射到mysql表格 |
------------------------------------------------
Mybatis一般有兩種寫法[1],
①原始的dao開發
②mapper代理的開發方式
------------------------------------------------
| 常用語法 | 作用 |
| @Param("參數名") | 對傳入的參數進行重命名, 重命名后的數據被使用在SQL中 |
| @ResultMap | <resultMap?type="com.clark.model.Goods"?id="t_good"> 映射用 |
| @Result | 下面這種select語句的應用[2]: @Result(column="login_name",property="loginName") 表格列名是column property表示private 變量是loginName |
| @Results | ? ? @Select(value = "select * from user") ? ? @Results(id = "userMap",value = { ? ? ? ? ? ? @Result(id = true,column ="id" ,property ="userId" ), ? ? ? ? ? ? @Result(column = "username" ,property = "userName"), ? ? ? ? ? ? @Result(column = "sex",property = "userSex"), ? ? ? ? ? ? @Result(column = "address",property = "userAddress"), ? ? ? ? ? ? @Result(column = "birthday",property = "userBirthday") ? ? }) |
| @Update | 更新語句 |
| @Select | 查詢語句 |
| @Delete | 刪除語句 |
| @Insert | 插入語句 |
| @Options | 設置緩存/映射關系等(如下圖解釋) |
?
?
Gendar表有一個gendarId自增長主鍵,如何在插入數據后自動獲取到該主鍵值呢?可以使用@Options注解:
?
| 含義 | 讀應的變量 |
| 實例對象中主鍵的屬性名 | keyProperty |
| 數據庫中的字段名 | keyColumn |
設置@Options屬性userGeneratedKeys的值為true,
這樣在gendar插入數據后,gendarId屬性會被自動賦值。(因為插入數據的時候,我們是不帶有主鍵的)
------------------------------------------------
常用springboot與數據庫的連接工具
Mybatis
Hibernate
JPA
Spring Data JPA(JPA的簡化工具)
JdbcTemplate
Mybatis(現在逐漸流行)
?
------------------------------------------------
Reference:
[1]MyBatis--xml方式
[2]mybatis column 和property
[3]注解開發中的@Results注解使用
?
總結
以上是生活随笔為你收集整理的springboot工程中各个层次的作用+springboot连接数据库的工具汇总+Mybatis的开发方式/语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 荣耀 MagicPad 平板电脑现身 G
- 下一篇: 荣耀平板X8Pro开不了机怎么办 荣耀平