mybatis
描述
输出映射合共有 2 种映射方式,一种 resultType,另一种 resultMap。本文先讨论 resultType 的用法。
resultType可以设置的类型包括:简单类型、POJO 类型和 Map 类型。
注意事项
输出简单类型时,要求查询出来的结果集必须只有一列;
输出 POJO 类型,要求 SQL 查询出来的列名与 POJO 上的属性名称一致。
示例
需求
统计 user_info 表合计有几行,这里我们只需要返回一个合计数,resultType 采用 int 简单类型。
实现
步骤如下:
编写 Mapper 接口
编写 Mapper 映射文件
编写 SqlMapConfig 文件
编写单元测试
编写 Mapper 接口
package com.edugroup.mapper;
import com.edugroup.pojo.UserInfo;
public interface IUserInfoMapper {
int findUserCount();
}
编写 Mapper 映射文件
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
SELECT count(1) FROM user_info;
编写 SqlMapConfig 文件
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
编写单元测试
package com.edugroup.test;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import com.edugroup.mapper.IUserInfoMapper;
import com.edugroup.pojo.UserInfo;
public class TestUserMapper {
private SqlSessionFactory sqlSessionFactory;
@Before
public void init() throws Exception{
String resource = "conf/SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void testFindUserCount() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
IUserInfoMapper mapper = sqlSession.getMapper(IUserInfoMapper.class);
int userCount = mapper.findUserCount();
System.out.println("User Count is :" + userCount);
} catch(Exception ex) {
ex.printStackTrace();
} finally {
sqlSession.close();
}
}
}
码字不易,感谢点赞打赏