中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring boot整合mybatis的方法

發布時間:2020-08-12 15:49:19 來源:億速云 閱讀:212 作者:小新 欄目:開發技術

Spring boot整合mybatis的方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

導入mybatis jar包

右鍵pom.xml

Spring boot整合mybatis的方法
Spring boot整合mybatis的方法

模擬springboot底層實現類

1.

定義接口

@Mapper

public interface GoodsDao {
	/**
	 * 基于商品id刪除商品
	 * @param id 商品id
	 * @return 刪除行數
	 * 數據層方法對象的sql映射
	 */

     @Delete("delete from tb_goods where id=#{id}")
      //當傳入的參數只有一個且不是數組時
      //#{id}這個地方的變量可以不是傳入的參數名(自己隨意)
     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.

自己實現

接口方法

@Mapper

public interface GoodsDao {
	/**
	 * 基于商品id刪除商品
	 * @param id 商品id
	 * @return 刪除行數
	 * 數據層方法對象的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)
	}
}

Spring boot整合mybatis的方法

@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可以接受多個參數
      * 在mapper文件中直接使用array來接受,
     * @param ids
     * @return
     */
     int deleteObject(/*@Param("ids")*/Integer...ids);
      //當mybatis過低時需要加上@Param("ids")才能識別

不加@Param("ids")報錯

Spring boot整合mybatis的方法
Spring boot整合mybatis的方法

使用xml映射

獲取xml頭文件(去官網)

Spring boot整合mybatis的方法

<&#63;xml version="1.0" encoding="UTF-8"&#63;>
<!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>

配置:

Spring boot整合mybatis的方法

測試:

	@Autowired
	private GoodsDao gd;
	
	@Test
	void deleteObject() {
		int rows=gd.deleteObject(1,2,3);
		System.out.println(row);
	}

當我們在執行此方法時,其實現類內部會檢測接口方法上是否有定義sql映射

假如沒有,然后基于接口類全名找到對應的映射文件(mapper映射文件的id),然后在基于方法名

再找到對應映射文件的元素,進而獲取sql映射

錯誤解決:

Spring boot整合mybatis的方法
Spring boot整合mybatis的方法

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

Spring boot整合mybatis的方法

感謝各位的閱讀!看完上述內容,你們對Spring boot整合mybatis的方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三穗县| 聊城市| 新河县| 勃利县| 班戈县| 醴陵市| 台湾省| 唐山市| 石河子市| 大姚县| 鹿邑县| 德清县| 江城| 浦江县| 元江| 明光市| 乐至县| 望江县| 嘉祥县| 南溪县| 罗平县| 安西县| 靖远县| 上思县| 灵台县| 罗江县| 威远县| 文成县| 竹北市| 铜川市| 韶山市| 崇仁县| 沁源县| 金阳县| 日照市| 建湖县| 乐至县| 大安市| 卢龙县| 双牌县| 南木林县|