Spring boot整合mybatis實現(xiàn)過程圖解
導入mybatis jar包
右鍵pom.xml


模擬springboot底層實現(xiàn)類
1.
定義接口
@Mapper
public interface GoodsDao {
/**
* 基于商品id刪除商品
* @param id 商品id
* @return 刪除行數(shù)
* 數(shù)據(jù)層方法對象的sql映射
*/
@Delete("delete from tb_goods where id=#{id}")
//當傳入的參數(shù)只有一個且不是數(shù)組時
//#{id}這個地方的變量可以不是傳入的參數(shù)名(自己隨意)
int deleteById(Integer id);
}
測試
@SpringBootTest
public class TestGoods {
@Autowired
private GoodsDao gd;
@Test
void TestGoods() {
int i =gd.deleteById(10);
System.out.println(i);
}
}
2.
自己實現(xiàn)
接口方法
@Mapper
public interface GoodsDao {
/**
* 基于商品id刪除商品
* @param id 商品id
* @return 刪除行數(shù)
* 數(shù)據(jù)層方法對象的sql映射
*/
@Delete("delete from tb_goods where id=#{id}")
int deleteById(Integer id);
}
@Component
public class GoodsDaoImpl {
@Autowired
private SqlSession sqlSession;
public int deleteById(Integer id) {
return sqlSession.delete("com.cy.demo.goods.dao.GoodsDao.deleteById", id);
//sqlSession.delete("com.cy.demo.goods.dao.deleteById",id)
}
}

@SpringBootTest
public class GoodsDaoImpTest {
@Autowired
private GoodsDaoImpl gdi;
@Test
void testdelete() {
int i = gdi.deleteById(9);
System.out.println(i);
}
}
直接導mapper文件找對應的元素
3.
當sql語句比較復雜時使用映射文件
接口:
/**
*GoodsDao.java
* ids可以接受多個參數(shù)
* 在mapper文件中直接使用array來接受,
* @param ids
* @return
*/
int deleteObject(/*@Param("ids")*/Integer...ids);
//當mybatis過低時需要加上@Param("ids")才能識別
不加@Param("ids")報錯


使用xml映射
獲取xml頭文件(去官網(wǎng))

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cy.demo.goods.dao.GoodsDao">
<delete id="deleteObject">
delete from tb_goods
<where>
<if test="ids!=null and ids.length>0">
id in
<foreach collection="ids" open="(" close=")" separator=","
item="i">
#{i}
</foreach>
</if>
or 1=2
</where>
</delete>
</mapper>
配置:

測試:
@Autowired
private GoodsDao gd;
@Test
void deleteObject() {
int rows=gd.deleteObject(1,2,3);
System.out.println(row);
}
當我們在執(zhí)行此方法時,其實現(xiàn)類內(nèi)部會檢測接口方法上是否有定義sql映射
假如沒有,然后基于接口類全名找到對應的映射文件(mapper映射文件的id),然后在基于方法名
再找到對應映射文件的元素,進而獲取sql映射
錯誤解決:


binding異常還有可能時參數(shù)異常,還有可能是配置文件有問題

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
java string類型轉(zhuǎn)換boolean類型的方法
下面小編就為大家?guī)硪黄猨ava string類型轉(zhuǎn)換boolean類型的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
Java?BigDecimal類的一般使用、BigDecimal轉(zhuǎn)double方式
這篇文章主要介紹了Java?BigDecimal類的一般使用、BigDecimal轉(zhuǎn)double方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
SpringCloud聲明式Feign客戶端調(diào)用工具使用
這篇文章主要為大家介紹了SpringCloud聲明式Feign客戶端調(diào)用工具使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08

