mybatis輸入映射和輸出映射實(shí)例詳解
輸入映射
Mybatis支持輸入
哪些類型
簡單類型、POJO,HashMap,POJO的包裝的類型。
需求:查詢用戶列表:已經(jīng)下過訂單男性用戶,那么傳入的參數(shù)包含用戶信息(User)和訂單信息(Order)
輸出映射
resultType
(1)支持的類型
基本類型、pojo、hashMap
(2)輸出是POJO和POJO列表問題
不管是輸出是單個POJO,還是POJO列表,在Mapper.xml中resultType都是一樣的,只是在Mapper接口中返回值類型不一樣。
(3)使用條件
使用resultType進(jìn)行輸出映射的時候,只要查詢出來的列名和POJO的屬性名一致,該列才可以映射成功。
只要查詢出來的列名和屬性名有一個能對應(yīng)的上,就會創(chuàng)建POJO對象。
如果查詢出來的列名和屬性名沒有一個能對應(yīng)上,就不會創(chuàng)建POJO對象。
sqlMapconfig.xml核心配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="devlelopment"> <environment id="devlelopment"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/mysql04"></property> <property name="username" value="root"></property> <property name="password" value="123"></property> </dataSource> </environment> </environments> <!--(6)在核心配置文件加載映射文件--> <mappers> <mapper resource="com/sgl/demo2/User.xml"></mapper> <mapper resource="com/sgl/demo3/mapper/UserMapper.xml"></mapper> <mapper resource="com/sgl/demo5/mapper/UserMapper.xml"></mapper> </mappers> </configuration>
UserMapper .java
package com.sgl.demo5.mapper; import com.sgl.demo5.pojo.User; import com.sgl.demo5.vo.UserQueryVo; import java.util.List; public interface UserMapper { // 根據(jù)返回類型選擇selectOne或者selectList public List<User> findUserList(UserQueryVo userQueryVo); }
UserMapper .xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace :命名空間,對Sql進(jìn)行分類管理,SQL分離--> <mapper namespace="com.sgl.demo5.mapper.UserMapper"> <!-- id:表示配置文件中的SQL,稱為statement 的Id parameterType:參數(shù)的類型 resultType:返回值的類型, 如果返回值是一個集合,那么類型就寫集合中元素的類型 --> <!--查詢用戶列表,主鍵查詢--> <select id="findUserList" parameterType="com.sgl.demo5.vo.UserQueryVo" resultType="com.sgl.demo5.pojo.User"> select username,id from user where username like "%"#{user.username}"%" and sex=#{user.sex} </select> </mapper>
UserQueryVo .java
package com.sgl.demo5.vo; import com.sgl.demo5.pojo.User; public class UserQueryVo { private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } }
Test1.java
package com.sgl.demo5.test; import com.sgl.demo5.mapper.UserMapper; import com.sgl.demo5.pojo.User; import com.sgl.demo5.vo.UserQueryVo; 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 java.io.IOException; import java.io.InputStream; import java.util.List; public class Test1 { private SqlSessionFactory sqlSessionFactory; @Before public void fun0() throws IOException { InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapconfig.xml"); this.sqlSessionFactory= new SqlSessionFactoryBuilder().build(resourceAsStream); } @Test public void fun1() { SqlSession sqlSession = this.sqlSessionFactory.openSession(); UserMapper userMapper = sqlSession.getMapper( UserMapper.class ); UserQueryVo userQueryVo=new UserQueryVo(); User user=new User(); user.setUsername("小"); user.setSex("1"); userQueryVo.setUser(user); List<User> userList = userMapper.findUserList(userQueryVo); for ( User u:userList ) { System.out.println(u); } } }
以上所述是小編給大家介紹的mybatis輸入映射和輸出映射詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Java利用遞歸實(shí)現(xiàn)樹形結(jié)構(gòu)的工具類
有時候,我們的數(shù)據(jù)是帶有層級的,比如常見的省市區(qū)三級聯(lián)動,就是一層套著一層。而我們在數(shù)據(jù)庫存放數(shù)據(jù)的時候,往往是列表形式的,這個時候可能就需要遞歸處理為樹形結(jié)構(gòu)了。本文就為大家介紹了Java利用遞歸實(shí)現(xiàn)樹形結(jié)構(gòu)的工具類,希望對大家有所幫助2023-03-03maven+阿里云創(chuàng)建國內(nèi)鏡像的中央倉庫(親測可用)
本篇文章主要介紹了maven+阿里云創(chuàng)建國內(nèi)鏡像的中央倉庫(親測可用),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12java數(shù)據(jù)結(jié)構(gòu)與算法數(shù)組模擬隊列示例詳解
這篇文章主要為大家介紹了java數(shù)據(jù)結(jié)構(gòu)與算法數(shù)組模擬隊列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06SpringBoot中多環(huán)境yml的配置與打包問題
這篇文章主要介紹了SpringBoot中多環(huán)境yml的配置與打包問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09JavaWeb實(shí)現(xiàn)同一帳號同一時間只能一個地點(diǎn)登陸(類似QQ登錄的功能)
最近做了企業(yè)項目,其中有這樣的需求要求同一帳號同一時間只能一個地點(diǎn)登陸類似QQ登錄的功能。下面小編通過本文給大家分享實(shí)現(xiàn)思路,感興趣的朋友參考下吧2016-11-11CountDownLatch和Atomic原子操作類源碼解析
這篇文章主要為大家介紹了CountDownLatch和Atomic原子操作類的源碼解析以及理解應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03詳解用JWT對SpringCloud進(jìn)行認(rèn)證和鑒權(quán)
這篇文章主要介紹了詳解用JWT對SpringCloud進(jìn)行認(rèn)證和鑒權(quán),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03