日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三 mybatis typeAlias(别名)使用和resultMap使用

發布時間:2023/12/31 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三 mybatis typeAlias(别名)使用和resultMap使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?1、MyBatis提供的typeAlias

?

?2、定義自定義類型的別名

?定義自定義類型的別名

1.在mybatis-config.xml中增加

1 <typeAliases> 2 <typeAlias alias="user" type="cn.itcast.pojo.User"/> 3 </typeAliases>

2.在UserMapper.xml中使用別名 resultType="user"

1 <select id="loadUserById" parameterType="integer" resultType="user"> 2 select * from user where id = #{id} 3 </select>

?

?

3、resultMap使用

1.創建person表

1 create table person(id int primary key,user_name varchar(50),age int,address varchar(150)); 2 desc person; 3 insert into person values(1,’laozhao’,35,’haidian’);

2.創建person.java

1 public class Person {
2 3 private Integer id; 5 private String userName; 7 private Integer age; 9 private String address; 10 11 set get ... 12 13 }

3.創建PersonMapper.xml

1 <mapper namespace="cn.itcast.dao.PersonMapper">
2 <select id="loadPersonById" parameterType="integer" resultType="person"> 3 select * from person where id = #{id} 4 </select>
5 </mapper>

4.修改mybatis-config.xml,增加person相關信息

1 <typeAliases> 2 <typeAlias alias="person" type="cn.itcast.pojo.Person"/> 3 </typeAliases> 4 <mapper resource="cn/itcast/dao/PersonMapper.xml"/>

5.創建測試類TestPerson

1 @Test 2 public void testloadPersonById(){ 3 4 PersonMapper personMapper = sqlSession.getMapper(PersonMapper.class); 5 Person person = sqlSession.selectOne("cn.itcast.dao.PersonMapper.loadPersonById", 1); 6 System.out.println(person); 7 }

如何在javabean屬性和表字段不一致的情況下正常取值?

?

方式一:查詢語句中指定別名

1 <select id="loadPersonById2" parameterType="integer" resultType="person"> 2 3   select id,user_name as userName,age,address from person where id = #{id} 4 5 </select>

方式二、使用resultMap標簽

1 <resultMap type="person" id="personMap"> 2 3 <result property=“userName" column="user_name"/> 4 5 </resultMap> 6 7 <select id="loadPersonById3" parameterType="integer" resultMap="personMap"> 8 9   select * from person where id = #{id} 10 11 </select>

?

resultMap的使用? 映射一對多、多對一

?

1.創建訂單表orders

1 create table orders(id int primary key,pid int,num varchar(12),name varchar(150),price double(10,2)); 2 3 desc orders; 4 5 insert orders values(1,1,'n101','shouji',1342.23); 6 7 insert orders values(2,1,'d102','diannao',8766.74); 8 9 insert orders values(3,1,'p103','pingban',3342.53);

2.創建orders.java

1 public class Orders { 2 3 private Integer id; 4 5 private String num; 6 7 private String name; 8 9 private Double price; 10 11 private Person person; 12 13 get set ... 14 15 }

3.創建OrdersMapper.xml

1 <mapper namespace="cn.itcast.dao.OrdersMapper"> 2 3 <resultMap type="orders" id="ordersMap"> 4 5    <result property="num" column="num"/> 6 7   <result property="name" column="name"/> 8 9   <association property="person" javaType="person" > 10 11      <result property="name" column="user_name"/> 12 13      <result property="address" column="address"/> 14 15   </association> 16 17 </resultMap> 18 19 <select id="loadOrdersById" parameterType="integer" resultMap="ordersMap"> 20 21 select a.*,b.* from orders a,person b where a.pid=b.id and a.id = #{id} 22 23 </select> 24 25 </mapper>

4.修改mybatis-config.xml,增加

1 <typeAlias alias="orders" type="cn.itcast.pojo.Orders"/> 2 <typeAlias alias="persion" type="cn.itcast.pojo.Persion"/> 3 <mapper resource="cn/itcast/dao/OrdersMapper.xml"/>

5.創建TestOrders

1 public class TestOrders { 2 3 @Test 4 5 public void loadOrdersById(){ 6 7 Orders o = sqlSession.selectOne("cn.itcast.dao.OrdersMapper.loadOrdersById", 1); 8 9 System.out.println("num:"+o.getNum() + ",name:" + o.getName() + ",personName:" 10 11 + o.getPerson().getName() + ",address:" + o.getPerson().getAddress()); 12 13 } 14 15 }

1.在Person.java中增加對應訂單的list

1 private List<Orders> ordersList = new ArrayList<Orders>(); 2 3 public List<Orders> getOrdersList() { 4 5 return ordersList; 6 7 } 8 9 public void setOrdersList(List<Orders> ordersList) { 10 11 this.ordersList = ordersList; 12 13 }

2.在PersonMapper.xml中增加查詢

1 <resultMap type="person" id="personMap2"> 2 3  <result property="name" column="user_name"/>
4     <!--配置orderList屬性,并制定類型為orders--> 5 <collection property="ordersList" javaType="orders"> 6 7     <result property="name" column="name"/> 8 9      <result property="price" column="price"/> 10 11     <result property="num" column="num"/> 12 13 </collection> 14 15 </resultMap> 16 17 <select id="loadPersonById4" parameterType="integer" resultMap="personMap2"> 18 19 select a.*,b.* from person a,orders b where a.id=b.pid and a.id = #{id} 20 21 </select>

4. TestPerson中增加方法

1 @Test 2 3 public void loadPersonById4(){ 4 5 6 Person person = sqlSession.selectOne("cn.itcast.dao.PersonMapper.loadPersonById4", 1); 7 8 System.out.println(person.getName() + " " + person.getOrdersList().size()); 11 12 for(Orders o: person.getOrdersList()){ 13 14      System.out.println(o.getName() + " " + o.getPrice() + " " + o.getNum()); 15 16 } 17 18 }

?

轉載于:https://www.cnblogs.com/kingxiaozi/p/5991108.html

總結

以上是生活随笔為你收集整理的三 mybatis typeAlias(别名)使用和resultMap使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。