mybatis实战教程(二)-接口式编程

字数 320阅读 202

   前面已经配置好了mybatis的开发环境,并且实现了一个简单的查询。这种方式是使用SqlSession实例来直接执行已映射的SQL语句,这种方法需要写很长一段字符串,容易出错、传入数据参数类型也可能会出错、执行结果还需要强制类型转换。

   如果采用接口式编程,就可以明确被调用的方法,因为我们调用的是接口中的某个具体方法,而不再是通过一个字符串来指定执行映射文件中的某个SQL语句。传入参数和返回值都不再是Object,这样就可以在代码编写阶段确保传入的参数类型是正确的,也不再需要对返回值进行强类型转换。

优化步骤

1.在source目录下创建名为com.zhq.dao的接口包,并在该包下创建一个名为ActivityDao的接口。代码如下:

package com.zhq.dao;

import java.util.List;

import com.zhq.pojo.Activity;

public interface ActivityDao {
    
    List<Activity> selectByAll();
    Activity selectById(int id);
}

2.修改测试类ActivityTest,使用SqlSession实例对象的getMapper方法。代码如下:

@Test
public void testSelectById() {
    SqlSession session = sqlSessionFactory.openSession();
    //使用SqlSession实例对象的selectOne方法
    //Activity activity = session.selectOne("com.zhq.dao.ActivityDao.selectById",10);
    ActivityDao activityDao = session.getMapper(ActivityDao.class);
    Activity activity = activityDao.selectById(10);
    session.commit();
    Assert.assertNotEquals("查找成功", "爱美丽", activity.getTitle());
    session.close();
}

3.运行测试文件就可以看到结果

源码

代码地址:https://github.com/DerryZhao/mybatisLearn

推荐阅读更多精彩内容