應如何正確地描述下面的MyBatis語句的執行過程?
我的理解如下,但感覺很拗口,似懂非懂的感覺:
由session.selectList("com.kgc.mybatis.pojo.UserMapper.getUsers2")可知,
將去執行mapper文件中id為getUsers2的select語句,
而在id為getUsers2的select語句中,由于resultMap="UserBasicMap",
又會去id="UserBasicMap"的resultMap中找,...
User類:
public class User {
private String uid;
private String uname;
private List<Book> books;
//setter,getter方法
}
Book類:
public class Book {
private String bid;
private String bname;
//setter,getter方法
}
測試類:
@Test
public void getUsers2Test(){
List<User> userList = session.selectList("com.kgc.mybatis.pojo.UserMapper.getUsers2");
for(User user : userList){
System.out.println(user);
}
}
Mapper文件:
<resultMap type="com.kgc.mybatis.pojo.User" id="UserBasicMap">
<id property="uid" column="uid"/>
<result property="uname" column="uname" />
<collection property="books" ofType="com.kgc.mybatis.pojo.Book">
<id property="bid" column="bid" />
<result property="bname" column="bname" />
</collection>
</resultMap>
<select id="getUsers2" resultMap="UserBasicMap">
select * from t_user t1 left join t_book t2 on t1.uid = t2.userid
</select>
1 回答

心有法竹
TA貢獻1866條經驗 獲得超5個贊
1.session.selectList() 里面可以傳入一個標識就行,不用傳全類名.
2.Mapper文件中的<select><select> 中可以設置傳入參數類型.
3.UserBasicMap只是規定封裝數據的對象屬性.
添加回答
舉報
0/150
提交
取消