Mybatis ResultType如何處理返回類型
更新時間:2024年01月22日 17:07:51 作者:JoneClassMate
這篇文章主要介紹了Mybatis ResultType如何處理返回類型方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
1. 使用resultType返回List<T>
Mapper.xml
<select id="resultType2" resultType="String">
select
book_name
from tb_book
</select>service層
List<String> resultType2();
實現(xiàn)類
//創(chuàng)建對象
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測試
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 {
//獲取對象
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);
}
}
}測試如下

2. 使用resultType返回單個對象
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();
實現(xiàn)類
//創(chuàng)建對象
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測試
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 {
//獲取對象
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>,適用于多表查詢返回結果集
mapper接口
需要使用注解才能使用map其實這個主要功能也不大 將就著用吧
@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();
實現(xiàn)類
//創(chuàng)建對象
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測試
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 {
//獲取對象
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>,適用于多表查詢返回單個結果集
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();
實現(xiàn)類
//創(chuàng)建對象
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測試
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 {
//獲取對象
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);
}
}總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot+vue+Axios實現(xiàn)Token令牌的詳細過程
Token是在服務端產生的,前端可以使用用戶名/密碼向服務端請求認證(登錄),服務端認證成功,服務端會返回?Token?給前端,Token可以使用自己的算法自定義,本文給大家介紹SpringBoot+vue+Axios實現(xiàn)Token令牌,感興趣的朋友一起看看吧2023-10-10
JVM調優(yōu)OutOfMemoryError異常分析
這篇文章主要為大家介紹了JVM調優(yōu)OutOfMemoryError異常分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
Java為圖片添加水印并保存實現(xiàn)方法(附帶源碼)
這篇文章主要介紹了如何使用Java編程語言在圖像上添加文字或圖片水印,并提供了一個簡單的Java程序實現(xiàn),文中給出了詳細的代碼示例,需要的朋友可以參考下2025-03-03
Java中的Opencv簡介與開發(fā)環(huán)境部署方法
OpenCV是一個開源的計算機視覺和圖像處理庫,提供了豐富的圖像處理算法和工具,它支持多種圖像處理和計算機視覺算法,可以用于物體識別與跟蹤、圖像分割與邊緣檢測、圖像特征提取與描述等應用,本文介紹Java中的Opencv簡介與開發(fā)環(huán)境部署方法,感興趣的朋友一起看看吧2025-01-01

