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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。