Spring boot整合mybatis实现过程图解
导入mybatisjar包
右键pom.xml
@Mapper
publicinterfaceGoodsDao{
/**
*基于商品id删除商品
*@paramid商品id
*@return删除行数
*数据层方法对象的sql映射
*/
@Delete("deletefromtb_goodswhereid=#{id}")
//当传入的参数只有一个且不是数组时
//#{id}这个地方的变量可以不是传入的参数名(自己随意)
intdeleteById(Integerid);
}
测试
@SpringBootTest
publicclassTestGoods{
@Autowired
privateGoodsDaogd;
@Test
voidTestGoods(){
inti=gd.deleteById(10);
System.out.println(i);
}
}
2.
自己实现
接口方法
@Mapper
publicinterfaceGoodsDao{
/**
*基于商品id删除商品
*@paramid商品id
*@return删除行数
*数据层方法对象的sql映射
*/
@Delete("deletefromtb_goodswhereid=#{id}")
intdeleteById(Integerid);
}
@Component
publicclassGoodsDaoImpl{
@Autowired
privateSqlSessionsqlSession;
publicintdeleteById(Integerid){
returnsqlSession.delete("com.cy.demo.goods.dao.GoodsDao.deleteById",id);
//sqlSession.delete("com.cy.demo.goods.dao.deleteById",id)
}
}
@SpringBootTest
publicclassGoodsDaoImpTest{
@Autowired
privateGoodsDaoImplgdi;
@Test
voidtestdelete(){
inti=gdi.deleteById(9);
System.out.println(i);
}
}
直接导mapper文件找对应的元素
3.
当sql语句比较复杂时使用映射文件
接口:
/**
*GoodsDao.java
*ids可以接受多个参数
*在mapper文件中直接使用array来接受,
*@paramids
*@return
*/
intdeleteObject(/*@Param("ids")*/Integer...ids);
//当mybatis过低时需要加上@Param("ids")才能识别
不加@Param("ids")报错
使用xml映射
获取xml头文件(去官网)
deletefromtb_goods 0"> idin #{i} or1=2
配置:
测试:
@Autowired
privateGoodsDaogd;
@Test
voiddeleteObject(){
introws=gd.deleteObject(1,2,3);
System.out.println(row);
}
当我们在执行此方法时,其实现类内部会检测接口方法上是否有定义sql映射
假如没有,然后基于接口类全名找到对应的映射文件(mapper映射文件的id),然后在基于方法名
再找到对应映射文件的元素,进而获取sql映射
错误解决:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。