Mybatis基于注解與XML開發(fā)使用流程
1 關于SpringBoot
SpringBoot是一個基于Spring框架的快速開發(fā)的腳手架,它能夠幫助我們開發(fā)者快速搭建項目環(huán)境,并提供了一些建議的配置方式,降低了開發(fā)者程序的開發(fā)和部署難度。
2 關于MyBatis
2.1 MyBatis概述
MyBatis是Java的持久化框架,目的是為了使操作數(shù)據(jù)庫更加方便、靈活、高效??梢酝ㄟ^Java注解和XML文件來映射Java對象和SQL語句,提供了非常靈活的SQL編寫方式和動態(tài)SQL語句的創(chuàng)建方式,可以與Spring框架結合使用。
2.2 MyBatis核心思想
將Java對象和數(shù)據(jù)庫操作分離,通過注解和XML映射文件映射到數(shù)據(jù)庫的字段上,并提供相應的API來操作數(shù)據(jù)庫??梢宰詣訉QL語句轉(zhuǎn)為JDBC代碼,并根據(jù)指定的返回值類型生成對應的結果提供給開發(fā)者使用。
2.3 MyBatis使用流程
1.配置MyBatis環(huán)境
在pom.xml中添加相關依賴:MyBatis Framework 和 MySQL Driver
2.配置文件中配置數(shù)據(jù)庫的連接信息(application.properties)
spring.datasource.url=jdbc:mysql://localhost:3306/blog?characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root3.定義pojo類,和數(shù)據(jù)表做好映射關系
4.編寫Dao層接口,在接口中定義操作數(shù)據(jù)庫的方法,在注解或者XML文件中實現(xiàn)具體的SQL語句。
@Mapper
public interface UserMapper{
@Insert("INSERT INTO user VALUES(NULL,#{username})")
int insert(User user);
}5.使用
// 1.自動裝配
@Autowired
private UserMapper userMapper
// 2.調(diào)用方法
userMpper.insert(...)3 MyBatis配置SQL方式
3.1 基于注解方式
3.1.1 說明
基于注解方式省去了配置XML文件的編寫工作,并且可以很方便的完成一些 簡單的 CRUD操作,但是對于一些復雜的SQL語句使用起來會很冗余。
3.1.2 使用流程
- (maven工程)在pom.xml中添加MyBatis和MySQL相關的依賴
- 在配置文件中(application.properties)配置數(shù)據(jù)庫的連接信息
- 創(chuàng)建實體類,和數(shù)據(jù)庫中的表做好對應關系
- 配置Mapper接口,在接口中添加@Mapper注解,告訴底層為此接口創(chuàng)建實現(xiàn)類,在實現(xiàn)類中定義數(shù)據(jù)訪問的邏輯,執(zhí)行與數(shù)據(jù)庫的會話
- 在接口中定義方法,在方法上使用注解標注SQL語句的類型,可以使用的注解有:@Insert、@Dlelete、@Update、@Select
- 如果SQL語句中涉及到多個參數(shù),可以使用@Param注解給每個參數(shù)取名。
- 自動裝配并在應用程序中使用即可
@Autowired
private XxxMapper xxxMapper;
xxxMapper.接口中的方法(參數(shù)...);3.1.3 常用注解
- @Insert(“SQL”)
- @Dlelete(“SQL”)
- @Update(“SQL”)
- @Select(“SQL”)
3.2 基于XML方式
3.2.1 相比注解優(yōu)勢
- 更好的可讀性
- XML文件具有良好的結構和語義,可以使JAVA代碼和SQL語句徹底分離,便于管理和優(yōu)化。注解配置SQL語句可能使JAVA代碼變的冗長。
- 更好的復用性
- 將SQL語句寫入XML文件中,通過 和標簽 將重復的SQL抽取并引用,從而提高了SQL語句的復用性。
- 更好的支持動態(tài)SQL
- 動態(tài)SQL語句是根據(jù)運行時的參數(shù)來生成的SQL,復雜性較高,使用XML文件更加方便。
3.2.2 使用流程
- 添加依賴:pom.xml
- 配置數(shù)據(jù)源:application.propertis
- 配置xml文件的掃描路徑:application.properties
- 創(chuàng)建實體類,做好和數(shù)據(jù)表的對應關系
- 定義接口,添加@Mapper注解,并定義接口中的方法
- 創(chuàng)建xml文件,使用標簽配置SQL
- 裝配使用
@Autowired
private XxxMapper xxxMapper;
xxxMapper.接口方法(參數(shù)...);3.2.3 常用標簽
- insert標簽
- delelte標簽
- update標簽
- select標簽
使用select標簽需要指定 resultType 的屬性值 - foreache標簽:用于動態(tài)刪除
<delete id="xxx">
DELETE FROM xxx WHERE id in(
<foreache collection="對象類型" item="變量名" separator="分隔符">
#{變量名}
</foreache>
)
</delete>set標簽和if標簽:用于動態(tài)修改
<update id="xxx">
UPDATE xxx
<set>
<if test="屬性名!=null">字段名=#{屬性名},</if>
<if test="屬性名!=null">字段名=#{屬性名},</if>
<if test="屬性名!=null">字段名=#{屬性名}</if>
</set>
</update>sql標簽和include標簽:用于SQL語句的復用
<!--1.重復SQL抽取-->
<sql id="selectSql">
SELECT * FROM xxx
</sql>
<select id="xxx" resultType="xxx">
<include refid="selectSql"></include>
</select>
<select id="yyy" resultType="yyy">
<include refid="selectSql"></include> WHERE id>5
</select>到此這篇關于Mybatis基于注解與XML開發(fā)的文章就介紹到這了,更多相關Mybatis注解XML開發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mybatis配置文件簡介_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了mybatis配置文件簡介的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
Apache Commons Math3學習之數(shù)值積分實例代碼
這篇文章主要介紹了Apache Commons Math3學習之數(shù)值積分實例代碼,涉及使用辛普森積分的例子,這里分享給大家,供需要的朋友參考。2017-10-10
解決springboot錯誤:找不到或無法加載主類(配置編碼或者Maven)
這篇文章主要介紹了解決springboot錯誤:找不到或無法加載主類(配置編碼或者Maven)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)詳細教程
使用SSM(Spring、SpringMVC和Mybatis)已經(jīng)有段時間了,項目在技術上已經(jīng)沒有什么難點了,基于現(xiàn)有的技術就可以實現(xiàn)想要的功能,下面這篇文章主要給大家介紹了關于整合SSM框架:Spring MVC + Spring + MyBatis的相關資料,需要的朋友可以參考下。2017-07-07
SpringBoot實現(xiàn)動態(tài)定時任務的示例代碼
在SpringBoot項目中簡單使用定時任務,不過由于要借助cron表達式且都提前定義好放在配置文件里,不能在項目運行中動態(tài)修改任務執(zhí)行時間,實在不太靈活?,F(xiàn)在我們就來實現(xiàn)可以動態(tài)修改cron表達式的定時任務,感興趣的可以了解一下2022-10-10

