resultType和resultMap只能有一個成立,resultType是直接表示返回類型的,而resultMap則是對外部ResultMap的引用,resultMap解決復雜查詢是的映射問題。比如:列名和對象屬性名不一致時可以使用resultMap來配置;還有查詢的對象中包含其他的對象等。
MyBatisConfig.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?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> <!--定義別名 注意typeAliases一定要在environments之前--> <typeAliases> <typeAlias type= "jike.book.pojo.JiKeUser" alias= "JiKeUser" /> </typeAliases> <environments default = "development" > <environment id= "development" > <transactionManager type= "JDBC" > </transactionManager> <dataSource type= "POOLED" > <property name= "driver" value= "com.mysql.jdbc.Driver" /> <property name= "url" value= "jdbc:mysql://localhost:3306/jikebook" /> <property name= "username" value= "root" /> <property name= "password" value= "*****" /> </dataSource> </environment> </environments> <mappers> <mapper resource= "jike/book/map/jikeUser.xml" /> <mapper class = "jike.book.Impl.InterfaceJikeUserMap" /> </mappers> </configuration> |
jikeUser.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?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" > <mapper namespace= "/" > <resultMap id= "JiKeUserMap" type= "JiKeUser" > <id property= "id" column= "id" /> <result property= "userName" column= "userName" /> <result property= "password" column= "password" /> </resultMap> <select id= "selectUserMap" resultMap= "JiKeUserMap" > select * from jikeUser; </select> <select id= "selectUserList" resultType= "JiKeUser" parameterType= "JiKeUser" > select * from jikebook.jikeuser; </select> </mapper> |
TestSelect.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package jike.book.test; import jike.book.pojo.JiKeUser; 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 java.io.IOException; import java.io.Reader; import java.util.List; /** * DateTime: 2016/9/5 21:45 * 功能: * 思路: */ public class TestSelect { public static void main(String[] args) { // 資源路徑 String resource= "jike/book/map/MyBatisConfig.xml" ; Reader reader= null ; SqlSession session; try { reader= Resources.getResourceAsReader(resource); } catch ( IOException e ) { e.printStackTrace(); } SqlSessionFactory sqlMapper= new SqlSessionFactoryBuilder().build(reader); session=sqlMapper.openSession(); List<JiKeUser> list=session.selectList( "selectUserMap" ); // List<JiKeUser> list=session.selectList("selectUserList"); for (JiKeUser jiKeUser:list){ System.out.println(jiKeUser.getUserName()); } session.close(); } } |
運行
1
|
List<JiKeUser> list=session.selectList( "selectUserMap" ); |
或者
1
|
List<JiKeUser> list=session.selectList( "selectUserList" ); |
結果都是一樣的
以上所述是小編給大家介紹的Mybatis中的resultType和resultMap查詢操作實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:http://blog.csdn.net/yen_csdn/article/details/52444207