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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

mybatis 使用resultMap实现关联数据的查询(association 和collection )

發(fā)布時(shí)間:2023/12/18 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis 使用resultMap实现关联数据的查询(association 和collection ) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
<?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的名字需要跟接口的類名一致 --> <mapper namespace="cn.bdqn.dao.UserMapper"><!-- 1、resultMap屬性:type為java實(shí)體類;id為此resultMap的標(biāo)識(shí)2、resultMap的子元素:id – 一般對(duì)應(yīng)到數(shù)據(jù)庫(kù)中該行的ID,設(shè)置此項(xiàng)可以提高M(jìn)ybatis性能.result – 映射到JavaBean 的某個(gè)“簡(jiǎn)單類型”屬性,String,int等.association – 映射到JavaBean 的某個(gè)“復(fù)雜類型”屬性,其他JavaBean類.collection –復(fù)雜類型集合 (演示示例2)--><!--根據(jù)roleId獲取用戶列表: 當(dāng)數(shù)據(jù)庫(kù)中的字段信息與對(duì)象的屬性不一致時(shí)需要通過(guò)resultMap來(lái)映射 --><!-- <resultMap type="User" id="seachUserResult"><result property="id" column="id"/><result property="userCode" column="userCode"/><result property="userName" column="userName"/><result property="roleId" column="roleId"/><result property="roleName" column="roleName"/></resultMap><select id="getUserListByRoleId" parameterType="Role" resultMap="seachUserResult">select u.*,r.roleName as roleName from user u,role r where u.roleId = r.id and u.roleId = #{id}</select> --><!-- 根據(jù)roleId獲取用戶列表 association start--><resultMap type="User" id="seachUserResult"><result property="id" column="id"/><result property="userCode" column="userCode" /><result property="userName" column="userName" /><result property="roleId" column="roleId" />
    //property=“屬性名” javaType=“屬性名的類型” ----(一對(duì)一)
<!-- <association property="role" javaType="Role" ><result property="id" column="id"/><result property="roleCode" column="roleCode"/><result property="roleName" column="roleName"/></association> --><association property="role" javaType="Role" resultMap="roleMap"/></resultMap><resultMap type="Role" id="roleMap"><result property="id" column="id"/> <result property="roleCode" column="roleCode"/> <result property="roleName" column="roleName"/> </resultMap><select id="getUserListByRoleId" parameterType="Role" resultMap="seachUserResult">select u.*,r.roleCode as roleCode,r.roleName as roleName from user u,role r where u.roleId = r.id and u.roleId = #{id}</select><!-- association end--><!-- 獲取指定用戶的地址列表(user表-address表:1對(duì)多關(guān)系) collection start--><resultMap type="User" id="userMap"><id property="id" column="userId"/>
    //property是屬性名 ofType是List《Address》的類對(duì)象
<collection property="addressList" ofType="Address"><id property="id" column="a_id"/><result property="postCode" column="postCode"/><result property="addressContent" column="addressContent"/></collection></resultMap><select id="getAddressListByUserId" parameterType="User" resultMap="userMap">select *,a.id as a_id from user u,address a where u.id=a.userId and u.id=#{id}</select><!-- collection end --><select id="count" resultType="int">select count(1) from user</select><insert id="add" parameterType="User">insert into user (userCode,userName,userPassword) values (#{userCode},#{userName},#{userPassword})</insert><update id="update" parameterType="User">update user set userCode=#{userCode},userName=#{userName},userPassword=#{userPassword} where id=#{id}</update><delete id="delete" parameterType="User">delete from user where id=#{id}</delete><select id="getUserList" resultType="User">select * from user</select> </mapper>

接口?UserMapper?

public interface UserMapper {public int count();public void add(User user);public void update(User user);public void delete(User user);public List<User> getUserList();//根據(jù)roleId獲取用戶列表public List<User> getUserListByRoleId(Role role);//獲取指定用戶的地址列表(user表-address表:1對(duì)多關(guān)系)public User getAddressListByUserId(User user);}

接口?RoleMapper?

public interface RoleMapper {public void add(Role role);public void update(Role role);public void delete(Role role);public List<Role> getRoleList(); } <?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="cn.bdqn.dao.RoleMapper"><select id="getRoleList" resultType="Role">select * from role</select><insert id="add" parameterType="Role">insert into role (roleCode,roleName) values (#{roleCode},#{roleName})</insert><update id="update" parameterType="Role">update role set roleCode=#{roleCode},roleName=#{roleName}where id=#{id}</update><delete id="delete" parameterType="Role">delete from role where id=#{id}</delete></mapper>

User.java

public class User {private Integer id;private String userName;private String userCode;private String userPassword;private Integer roleId;//private String roleName;//collectionprivate List<Address> addressList;//associationprivate Role role;public Role getRole() {return role;}public void setRole(Role role) {this.role = role;}public List<Address> getAddressList() {return addressList;}public void setAddressList(List<Address> addressList) {this.addressList = addressList;}public Integer getRoleId() {return roleId;}public void setRoleId(Integer roleId) {this.roleId = roleId;}/**public String getRoleName() {return roleName;}public void setRoleName(String roleName) {this.roleName = roleName;}*/public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserCode() {return userCode;}public void setUserCode(String userCode) {this.userCode = userCode;}public String getUserPassword() {return userPassword;}public void setUserPassword(String userPassword) {this.userPassword = userPassword;}}

address.java

public class Address {private Integer id;private Integer postCode;private String addressContent;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Integer getPostCode() {return postCode;}public void setPostCode(Integer postCode) {this.postCode = postCode;}public String getAddressContent() {return addressContent;}public void setAddressContent(String addressContent) {this.addressContent = addressContent;}}

?

轉(zhuǎn)載于:https://www.cnblogs.com/xuerong/p/5000233.html

總結(jié)

以上是生活随笔為你收集整理的mybatis 使用resultMap实现关联数据的查询(association 和collection )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。