基于id执行商品信息删除
增加mybatis依赖
spring框架启动时会对mybatis进行主动配置,帮咱们创立SqlSessionFactory工厂(让咱们能应用@Mapper注解来形容数据长久层)
第二步:定义商品业务数据层接口及业务办法
package com.cy.pj.goods.dao;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Mapper;@Mapperpublic interface GoodsDao { @Delete("delete from tb_goods where id=#{id}") int deleteById(Integer id);}
其中:@Mapper是由MyBatis框架中定义的一个形容数据接口的注解(所有的注解只是起标识作用),通知Spring框架此接口的实现由MyBatis创立,并将其实现类贮存到Spring容器中
第三步:定义测试类,对GoodsDao对象进行利用测试
@SpringBootTestpublic class GoodsDaoTests { @Autowired private GoodsDao goodsDao; @Test public void testDeleteById() { int rows=goodsDao.deleteById(10); System.out.println("rows="+rows); }}
调用长久层接口 应用删除办法,打印执行信息,查看是否胜利
业务进阶剖析及实现
在MyBais框架中定义Sql映射有两种:
1.将SQL映射定义在咱们的xml映射文件中(适宜比较复杂的sql语句,应用时充分利用动静的sql进行设计,如<where>,<if>...这些标签)
2.间接以注解的形式进行申明(简略的sql语句)
应用映射文件时,在src/main/resources目录下创立mapper/goods目录,而后在其目录中增加GoodsMapper.xml映射文件,并指定以下内容
<?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.pj.goods.dao.GoodsDao"\> <delete id="deleteObjects"\> delete from tb\_goods where id in <!-- (1,2,3,4,5) --> <foreach collection="ids" open="(" close=")" separator="," item="id"\> #{id} </foreach\> </delete\></mapper\>
1)xml文件的文件头是从mybatis官网cv的
2)namespace 指向的是长久层类的类全称
3)办法的id值要和接口中的办法名保持一致
迭代时只能迭代 "ids" "array" 这两种元素
collection指向肯定要填写其中之一,并且接口的办法类型要对应上
int deleteObjects(@param("ids")Integer...ids);
其中@param("ids") ids要和数组名称对应 Integer...ids是一个名字为ids的一个数组(三个点示意数组~~~~)
在启动类中增加下列配置,这个配置指向的就是sql映射文件
mybatis.mapper-locations=classpath:/mapper/*/*.xml
在GoodsDaoTests类中增加一个单元测试办法进行测试,查看办法运行是否有误