• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Mybatis ResultType处理返回类型

武飞扬头像
JoneClassMate
帮助1

学新通

目录

 1. 使用resultType返回List

 2. 使用resultType返回单个对象

3. 使用resultType返回List,适用于多表查询返回结果集 

 4. 使用resultType返回Map,适用于多表查询返回单个结果集,object>


 1. 使用resultType返回List<T>

  • Mapper.xml 
  1.  
    <select id="resultType2" resultType="String">
  2.  
    select
  3.  
    book_name
  4.  
    from tb_book
  5.  
    </select>
  •  service层
List<String> resultType2();
  • 实现类
  1.  
    //创建对象
  2.  
    private BookMapper bookMapper;
  3.  
     
  4.  
     
  5.  
    /**
  6.  
    * 给bookMapper set,get方法
  7.  
    * @return
  8.  
    */
  9.  
    public BookMapper getBookMapper() {
  10.  
    return bookMapper;
  11.  
    }
  12.  
     
  13.  
    public void setBookMapper(BookMapper bookMapper) {
  14.  
    this.bookMapper = bookMapper;
  15.  
    }
  16.  
     
  17.  
    @Override
  18.  
    public List<String> resultType2() {
  19.  
    return bookMapper.resultType2();
  20.  
    }
学新通
  •  使用junit测试
  1.  
    package com.jmh.mybatis.service.impl;
  2.  
     
  3.  
    import com.jmh.mybatis.mapper.BookMapper;
  4.  
    import com.jmh.mybatis.model.Book;
  5.  
    import com.jmh.mybatis.model.BookVo;
  6.  
    import com.jmh.mybatis.service.IBookService;
  7.  
    import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
  8.  
    import org.apache.ibatis.annotations.MapKey;
  9.  
    import org.apache.ibatis.session.SqlSession;
  10.  
    import org.junit.After;
  11.  
    import org.junit.Before;
  12.  
    import org.junit.Test;
  13.  
     
  14.  
    import java.util.List;
  15.  
    import java.util.Map;
  16.  
    import java.util.Set;
  17.  
     
  18.  
    import static org.junit.Assert.*;
  19.  
     
  20.  
    public class DemoTest {
  21.  
    //获取对象
  22.  
    private Book book;
  23.  
    private IBookService iBookService;
  24.  
    private SqlSession sqlSession;
  25.  
     
  26.  
    @Before
  27.  
    public void setUp() throws Exception {
  28.  
    book=new Book();
  29.  
    sqlSession = MybatisSqlSessionFactory.getSqlsession();
  30.  
    BookMapper mapper = sqlSession.getMapper(BookMapper.class);
  31.  
    BookServiceImpl iml=new BookServiceImpl();
  32.  
    iml.setBookMapper(mapper);
  33.  
    iBookService= iml;
  34.  
    }
  35.  
     
  36.  
    @After
  37.  
    public void tearDown() throws Exception {
  38.  
    sqlSession.commit();
  39.  
    MybatisSqlSessionFactory.closeSqlsession();
  40.  
    }
  41.  
     
  42.  
     
  43.  
    @Test
  44.  
    public void resultType2() {
  45.  
    List<String> books = iBookService.resultType2();
  46.  
    for (String b : books) {
  47.  
    System.out.println(b);
  48.  
    }
  49.  
    }
  50.  
     
  51.  
    }
学新通
  •  测试如下

学新通

 2. 使用resultType返回单个对象

  • Mapper.xml 
  1.  
    <select id="resultType3" resultType="com.jmh.mybatis.model.Book">
  2.  
    select
  3.  
    <include refid="Base_Column_List" />
  4.  
    from tb_book where book_id=306
  5.  
    </select>
  •  service层
Book resultType3();
  •  实现类
  1.  
    //创建对象
  2.  
    private BookMapper bookMapper;
  3.  
     
  4.  
     
  5.  
    /**
  6.  
    * 给bookMapper set,get方法
  7.  
    * @return
  8.  
    */
  9.  
    public BookMapper getBookMapper() {
  10.  
    return bookMapper;
  11.  
    }
  12.  
     
  13.  
    public void setBookMapper(BookMapper bookMapper) {
  14.  
    this.bookMapper = bookMapper;
  15.  
    }
  16.  
     
  17.  
    @Override
  18.  
    public Book resultType3() {
  19.  
    return bookMapper.resultType3();
  20.  
    }
学新通
  •  使用junit测试
  1.  
    package com.jmh.mybatis.service.impl;
  2.  
     
  3.  
    import com.jmh.mybatis.mapper.BookMapper;
  4.  
    import com.jmh.mybatis.model.Book;
  5.  
    import com.jmh.mybatis.model.BookVo;
  6.  
    import com.jmh.mybatis.service.IBookService;
  7.  
    import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
  8.  
    import org.apache.ibatis.annotations.MapKey;
  9.  
    import org.apache.ibatis.session.SqlSession;
  10.  
    import org.junit.After;
  11.  
    import org.junit.Before;
  12.  
    import org.junit.Test;
  13.  
     
  14.  
    import java.util.List;
  15.  
    import java.util.Map;
  16.  
    import java.util.Set;
  17.  
     
  18.  
    import static org.junit.Assert.*;
  19.  
     
  20.  
    public class DemoTest {
  21.  
    //获取对象
  22.  
    private Book book;
  23.  
    private IBookService iBookService;
  24.  
    private SqlSession sqlSession;
  25.  
     
  26.  
    @Before
  27.  
    public void setUp() throws Exception {
  28.  
    book=new Book();
  29.  
    sqlSession = MybatisSqlSessionFactory.getSqlsession();
  30.  
    BookMapper mapper = sqlSession.getMapper(BookMapper.class);
  31.  
    BookServiceImpl iml=new BookServiceImpl();
  32.  
    iml.setBookMapper(mapper);
  33.  
    iBookService= iml;
  34.  
    }
  35.  
     
  36.  
    @After
  37.  
    public void tearDown() throws Exception {
  38.  
    sqlSession.commit();
  39.  
    MybatisSqlSessionFactory.closeSqlsession();
  40.  
    }
  41.  
     
  42.  
     
  43.  
    @Test
  44.  
    public void resultType3() {
  45.  
    Book book = iBookService.resultType3();
  46.  
    System.out.println(book);
  47.  
    }
  48.  
     
  49.  
     
  50.  
     
  51.  
    }
学新通

3. 使用resultType返回List<Map>,适用于多表查询返回结果集 

  • mapper接口 

    需要使用注解才能使用map其实这个主要功能也不大 将就着用吧

  1.  
    @MapKey("id")
  2.  
    List<Map<String,Object>> resultType4();
  • mapper.xml 
  1.  
    <select id="resultType4" resultType="java.util.Map">
  2.  
    select book_id,price,book_name from tb_book
  3.  
    </select>
  •  service层
List<Map<String,Object>> resultType4();
  •  实现类
  1.  
    //创建对象
  2.  
    private BookMapper bookMapper;
  3.  
     
  4.  
     
  5.  
    /**
  6.  
    * 给bookMapper set,get方法
  7.  
    * @return
  8.  
    */
  9.  
    public BookMapper getBookMapper() {
  10.  
    return bookMapper;
  11.  
    }
  12.  
     
  13.  
    public void setBookMapper(BookMapper bookMapper) {
  14.  
    this.bookMapper = bookMapper;
  15.  
    }
  16.  
    @Override
  17.  
    public List<Map<String, Object>> resultType4() {
  18.  
    return bookMapper.resultType4();
  19.  
    }
学新通
  •  使用junit测试
  1.  
    package com.jmh.mybatis.service.impl;
  2.  
     
  3.  
    import com.jmh.mybatis.mapper.BookMapper;
  4.  
    import com.jmh.mybatis.model.Book;
  5.  
    import com.jmh.mybatis.model.BookVo;
  6.  
    import com.jmh.mybatis.service.IBookService;
  7.  
    import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
  8.  
    import org.apache.ibatis.annotations.MapKey;
  9.  
    import org.apache.ibatis.session.SqlSession;
  10.  
    import org.junit.After;
  11.  
    import org.junit.Before;
  12.  
    import org.junit.Test;
  13.  
     
  14.  
    import java.util.List;
  15.  
    import java.util.Map;
  16.  
    import java.util.Set;
  17.  
     
  18.  
    import static org.junit.Assert.*;
  19.  
     
  20.  
    public class DemoTest {
  21.  
    //获取对象
  22.  
    private Book book;
  23.  
    private IBookService iBookService;
  24.  
    private SqlSession sqlSession;
  25.  
     
  26.  
    @Before
  27.  
    public void setUp() throws Exception {
  28.  
    book=new Book();
  29.  
    sqlSession = MybatisSqlSessionFactory.getSqlsession();
  30.  
    BookMapper mapper = sqlSession.getMapper(BookMapper.class);
  31.  
    BookServiceImpl iml=new BookServiceImpl();
  32.  
    iml.setBookMapper(mapper);
  33.  
    iBookService= iml;
  34.  
    }
  35.  
     
  36.  
    @After
  37.  
    public void tearDown() throws Exception {
  38.  
    sqlSession.commit();
  39.  
    MybatisSqlSessionFactory.closeSqlsession();
  40.  
    }
  41.  
     
  42.  
     
  43.  
    @Test
  44.  
    public void resultType4() {
  45.  
    List<Map<String, Object>> maps = iBookService.resultType4();
  46.  
    for (Map<String, Object> map : maps) {
  47.  
    System.out.println(map);
  48.  
    }
  49.  
    }
  50.  
     
  51.  
    }
学新通

 4. 使用resultType返回Map<String,Object>,适用于多表查询返回单个结果集

  •  mapper接口
  1.  
    @MapKey("id")
  2.  
    Map<String,Object> resultType5();
  • mapper.xml 
  1.  
    <select id="resultType5" resultType="java.util.Map">
  2.  
    select book_id,price from tb_book
  3.  
    </select>
  •  service层
Map<String,Object> resultType5();
  •  实现类
  1.  
    //创建对象
  2.  
    private BookMapper bookMapper;
  3.  
     
  4.  
     
  5.  
    /**
  6.  
    * 给bookMapper set,get方法
  7.  
    * @return
  8.  
    */
  9.  
    public BookMapper getBookMapper() {
  10.  
    return bookMapper;
  11.  
    }
  12.  
     
  13.  
    public void setBookMapper(BookMapper bookMapper) {
  14.  
    this.bookMapper = bookMapper;
  15.  
    }
  16.  
     
  17.  
    @Override
  18.  
    public Map<String, Object> resultType5() {
  19.  
    return bookMapper.resultType5();
  20.  
    }
学新通
  •  使用junit测试
  1.  
    package com.jmh.mybatis.service.impl;
  2.  
     
  3.  
    import com.jmh.mybatis.mapper.BookMapper;
  4.  
    import com.jmh.mybatis.model.Book;
  5.  
    import com.jmh.mybatis.model.BookVo;
  6.  
    import com.jmh.mybatis.service.IBookService;
  7.  
    import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
  8.  
    import org.apache.ibatis.annotations.MapKey;
  9.  
    import org.apache.ibatis.session.SqlSession;
  10.  
    import org.junit.After;
  11.  
    import org.junit.Before;
  12.  
    import org.junit.Test;
  13.  
     
  14.  
    import java.util.List;
  15.  
    import java.util.Map;
  16.  
    import java.util.Set;
  17.  
     
  18.  
    import static org.junit.Assert.*;
  19.  
     
  20.  
    public class DemoTest {
  21.  
    //获取对象
  22.  
    private Book book;
  23.  
    private IBookService iBookService;
  24.  
    private SqlSession sqlSession;
  25.  
     
  26.  
    @Before
  27.  
    public void setUp() throws Exception {
  28.  
    book=new Book();
  29.  
    sqlSession = MybatisSqlSessionFactory.getSqlsession();
  30.  
    BookMapper mapper = sqlSession.getMapper(BookMapper.class);
  31.  
    BookServiceImpl iml=new BookServiceImpl();
  32.  
    iml.setBookMapper(mapper);
  33.  
    iBookService= iml;
  34.  
    }
  35.  
     
  36.  
    @After
  37.  
    public void tearDown() throws Exception {
  38.  
    sqlSession.commit();
  39.  
    MybatisSqlSessionFactory.closeSqlsession();
  40.  
    }
  41.  
     
  42.  
    @Test
  43.  
    public void resultType5() {
  44.  
    Map<String, Object> map = iBookService.resultType5();
  45.  
    System.out.println(map);
  46.  
    }
  47.  
    }
学新通

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhajjc
系列文章
更多 icon
同类精品
更多 icon
继续加载