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)建對象 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();
實(shí)現(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>,適用于多表查詢返回結(jié)果集
mapper接口
需要使用注解才能使用map其實(shí)這個主要功能也不大 將就著用吧
@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)建對象 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>,適用于多表查詢返回單個結(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)建對象 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); } }
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Postman form-data、x-www-form-urlencoded的區(qū)別及說明
這篇文章主要介紹了Postman form-data、x-www-form-urlencoded的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03優(yōu)化spring?boot應(yīng)用后6s內(nèi)啟動內(nèi)存減半
這篇文章主要為大家介紹了優(yōu)化spring?boot后應(yīng)用6s內(nèi)啟動內(nèi)存減半的優(yōu)化示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-02-02springboot使用alibaba的druid數(shù)據(jù)庫連接池錯誤的問題及解決
這篇文章主要介紹了springboot使用alibaba的druid數(shù)據(jù)庫連接池錯誤的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02java排查進(jìn)程占用系統(tǒng)內(nèi)存高方法
這篇文章主要為大家介紹了java進(jìn)程占用系統(tǒng)內(nèi)存高排查方法,2023-06-06