Mybatis ResultType如何處理返回類型
1. 使用resultType返回List<T>
Mapper.xml
<select id="resultType2" resultType="String">
select
book_name
from tb_book
</select>service層
List<String> resultType2();
實(shí)現(xiàn)類
//創(chuàng)建對(duì)象
private BookMapper bookMapper;
/**
* 給bookMapper set,get方法
* @return
*/
public BookMapper getBookMapper() {
return bookMapper;
}
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
@Override
public List<String> resultType2() {
return bookMapper.resultType2();
}使用junit測(cè)試
package com.jmh.mybatis.service.impl;
import com.jmh.mybatis.mapper.BookMapper;
import com.jmh.mybatis.model.Book;
import com.jmh.mybatis.model.BookVo;
import com.jmh.mybatis.service.IBookService;
import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.junit.Assert.*;
public class DemoTest {
//獲取對(duì)象
private Book book;
private IBookService iBookService;
private SqlSession sqlSession;
@Before
public void setUp() throws Exception {
book=new Book();
sqlSession = MybatisSqlSessionFactory.getSqlsession();
BookMapper mapper = sqlSession.getMapper(BookMapper.class);
BookServiceImpl iml=new BookServiceImpl();
iml.setBookMapper(mapper);
iBookService= iml;
}
@After
public void tearDown() throws Exception {
sqlSession.commit();
MybatisSqlSessionFactory.closeSqlsession();
}
@Test
public void resultType2() {
List<String> books = iBookService.resultType2();
for (String b : books) {
System.out.println(b);
}
}
}測(cè)試如下

2. 使用resultType返回單個(gè)對(duì)象
Mapper.xml
<select id="resultType3" resultType="com.jmh.mybatis.model.Book">
select
<include refid="Base_Column_List" />
from tb_book where book_id=306
</select>service層
Book resultType3();
實(shí)現(xiàn)類
//創(chuàng)建對(duì)象
private BookMapper bookMapper;
/**
* 給bookMapper set,get方法
* @return
*/
public BookMapper getBookMapper() {
return bookMapper;
}
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
@Override
public Book resultType3() {
return bookMapper.resultType3();
}使用junit測(cè)試
package com.jmh.mybatis.service.impl;
import com.jmh.mybatis.mapper.BookMapper;
import com.jmh.mybatis.model.Book;
import com.jmh.mybatis.model.BookVo;
import com.jmh.mybatis.service.IBookService;
import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.junit.Assert.*;
public class DemoTest {
//獲取對(duì)象
private Book book;
private IBookService iBookService;
private SqlSession sqlSession;
@Before
public void setUp() throws Exception {
book=new Book();
sqlSession = MybatisSqlSessionFactory.getSqlsession();
BookMapper mapper = sqlSession.getMapper(BookMapper.class);
BookServiceImpl iml=new BookServiceImpl();
iml.setBookMapper(mapper);
iBookService= iml;
}
@After
public void tearDown() throws Exception {
sqlSession.commit();
MybatisSqlSessionFactory.closeSqlsession();
}
@Test
public void resultType3() {
Book book = iBookService.resultType3();
System.out.println(book);
}
}3. 使用resultType返回List<Map>,適用于多表查詢返回結(jié)果集
mapper接口
需要使用注解才能使用map其實(shí)這個(gè)主要功能也不大 將就著用吧
@MapKey("id")
List<Map<String,Object>> resultType4();mapper.xml
<select id="resultType4" resultType="java.util.Map">
select book_id,price,book_name from tb_book
</select>service層
List<Map<String,Object>> resultType4();
實(shí)現(xiàn)類
//創(chuàng)建對(duì)象
private BookMapper bookMapper;
/**
* 給bookMapper set,get方法
* @return
*/
public BookMapper getBookMapper() {
return bookMapper;
}
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
@Override
public List<Map<String, Object>> resultType4() {
return bookMapper.resultType4();
}使用junit測(cè)試
package com.jmh.mybatis.service.impl;
import com.jmh.mybatis.mapper.BookMapper;
import com.jmh.mybatis.model.Book;
import com.jmh.mybatis.model.BookVo;
import com.jmh.mybatis.service.IBookService;
import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.junit.Assert.*;
public class DemoTest {
//獲取對(duì)象
private Book book;
private IBookService iBookService;
private SqlSession sqlSession;
@Before
public void setUp() throws Exception {
book=new Book();
sqlSession = MybatisSqlSessionFactory.getSqlsession();
BookMapper mapper = sqlSession.getMapper(BookMapper.class);
BookServiceImpl iml=new BookServiceImpl();
iml.setBookMapper(mapper);
iBookService= iml;
}
@After
public void tearDown() throws Exception {
sqlSession.commit();
MybatisSqlSessionFactory.closeSqlsession();
}
@Test
public void resultType4() {
List<Map<String, Object>> maps = iBookService.resultType4();
for (Map<String, Object> map : maps) {
System.out.println(map);
}
}
}4. 使用resultType返回Map<String,Object>,適用于多表查詢返回單個(gè)結(jié)果集
mapper接口
@MapKey("id")
Map<String,Object> resultType5();mapper.xml
<select id="resultType5" resultType="java.util.Map">
select book_id,price from tb_book
</select>service層
Map<String,Object> resultType5();
實(shí)現(xiàn)類
//創(chuàng)建對(duì)象
private BookMapper bookMapper;
/**
* 給bookMapper set,get方法
* @return
*/
public BookMapper getBookMapper() {
return bookMapper;
}
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
@Override
public Map<String, Object> resultType5() {
return bookMapper.resultType5();
}使用junit測(cè)試
package com.jmh.mybatis.service.impl;
import com.jmh.mybatis.mapper.BookMapper;
import com.jmh.mybatis.model.Book;
import com.jmh.mybatis.model.BookVo;
import com.jmh.mybatis.service.IBookService;
import com.jmh.mybatis.utils.MybatisSqlSessionFactory;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.junit.Assert.*;
public class DemoTest {
//獲取對(duì)象
private Book book;
private IBookService iBookService;
private SqlSession sqlSession;
@Before
public void setUp() throws Exception {
book=new Book();
sqlSession = MybatisSqlSessionFactory.getSqlsession();
BookMapper mapper = sqlSession.getMapper(BookMapper.class);
BookServiceImpl iml=new BookServiceImpl();
iml.setBookMapper(mapper);
iBookService= iml;
}
@After
public void tearDown() throws Exception {
sqlSession.commit();
MybatisSqlSessionFactory.closeSqlsession();
}
@Test
public void resultType5() {
Map<String, Object> map = iBookService.resultType5();
System.out.println(map);
}
}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot路徑映射配置的實(shí)現(xiàn)步驟
本文介紹了如何在SpringBoot項(xiàng)目中配置路徑映射,使得除static目錄外的資源可被訪問,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-08-08
SpringBoot+vue+Axios實(shí)現(xiàn)Token令牌的詳細(xì)過程
Token是在服務(wù)端產(chǎn)生的,前端可以使用用戶名/密碼向服務(wù)端請(qǐng)求認(rèn)證(登錄),服務(wù)端認(rèn)證成功,服務(wù)端會(huì)返回?Token?給前端,Token可以使用自己的算法自定義,本文給大家介紹SpringBoot+vue+Axios實(shí)現(xiàn)Token令牌,感興趣的朋友一起看看吧2023-10-10
JVM調(diào)優(yōu)OutOfMemoryError異常分析
這篇文章主要為大家介紹了JVM調(diào)優(yōu)OutOfMemoryError異常分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼生成(后端工具類)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼生成功能中的后端工具類部分,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-10-10
Java為圖片添加水印并保存實(shí)現(xiàn)方法(附帶源碼)
這篇文章主要介紹了如何使用Java編程語言在圖像上添加文字或圖片水印,并提供了一個(gè)簡(jiǎn)單的Java程序?qū)崿F(xiàn),文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2025-03-03
學(xué)習(xí)SpringBoot容器功能及注解原理
這篇文章主要介紹了學(xué)習(xí)SpringBoot容器功能及注解原理,文中通過詳細(xì)的代碼示例對(duì)SpringBoot容器功能及注解原理進(jìn)行了解析,有需要的朋友可以借鑒參考下2021-09-09
Java中的Opencv簡(jiǎn)介與開發(fā)環(huán)境部署方法
OpenCV是一個(gè)開源的計(jì)算機(jī)視覺和圖像處理庫,提供了豐富的圖像處理算法和工具,它支持多種圖像處理和計(jì)算機(jī)視覺算法,可以用于物體識(shí)別與跟蹤、圖像分割與邊緣檢測(cè)、圖像特征提取與描述等應(yīng)用,本文介紹Java中的Opencv簡(jiǎn)介與開發(fā)環(huán)境部署方法,感興趣的朋友一起看看吧2025-01-01

