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">

编写 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();

}

}

}

码字不易,感谢点赞打赏