1

使用工具SpringToolSuite4

首先在spring项目的pom文件中添加依赖
登陆http://mybatis.org/spring/官网,通过Spring Boot节点
找到Maven项目对应的依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.3</version>
</dependency>

官网目前版本是2.1.3,若低于这个版本,后续使用会操作繁琐一些

创建Dao层
在Dao层加上@Mapper注解,代表此接口的实现由Mybatis创建,交给Spring框架创建

**
 * 负责封装商品数据逻辑的数据访问对象
 * 
 * @Mapper 注解由mybatis提供,主要用于描述数据层接口
 * 系统底层会基于此注解的描述,为接口创建其实现类对象
 * 然后将此对象交给spring管理
 */
@Mapper
public interface GoodsDao {
    /**
     * 查询所有商品信息,一行记录映射为一个Goods对象,多个对象存储到List集合
     * 1)底层查询还是JDBC
     * 2)查询结果的映射(MyBatis框架):假如是JDBC我们需要获得结果集ResultSet,然后取数据手动进行映射
     * 内容中映射过程
     * 1)迭代ResultSet(这个对象中封装了数据库中的查询结果)
     * 2)构建Goods对象(迭代一次构建一个Goods对象)
     * 3)从ResultSet中取值然后通过反射调用Goods对象set方法,或者直接为属性赋值
     */
    @Select("select * from tb_goods")    
    List<Goods> findAll();
    
    /**
     * 基于商品id执行删除业务
     * @param id 商品id
     * @return 删除的行数
     * 数据层方法对象的sql映射,简单的sql可以以注解方式进行定义,复杂sql写到映射文件(xml)
     */
    @Delete("delete from tb_goods where id = #{id}")
    int deleteById(Integer id);

}

定义测试类,测试GoodsDao对象


@SpringBootTest
public class GoodsDaoTests {

    @Autowired
    private GoodsDao goodsDao; //思考:这个变量指向的对象是谁,什么类型?
    
    @Test
    void testDeleteObjects() {
        int rows = goodsDao.deleteObjects(7,8,9);
        System.out.println("rows="+rows);
    }
    
    @Test
    void testDeleteById() {
        //goodsDao --> com.sun.proxy.$Proxy56
        System.out.println(goodsDao.getClass().getName());
        int rows = goodsDao.deleteById(10); //思考:底层在做什么?(基于SqlSession与数据库会话)
        System.out.println("delete.rows="+rows);
    }
}

安德路西
4 声望3 粉丝