Chinaunix首页 | 论坛 | 博客
  • 博客访问: 362020
  • 博文数量: 97
  • 博客积分: 2030
  • 博客等级: 大尉
  • 技术积分: 763
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-12 09:11
文章分类

全部博文(97)

文章存档

2020年(1)

2019年(1)

2018年(4)

2017年(16)

2016年(61)

2015年(1)

2013年(3)

2006年(10)

我的朋友

分类: Java

2016-04-28 16:04:24

一、只包含一个对象的情况       

  • 先看看数据库的设计
   
  一个用户表,和用户的身份证id记录表
  • mapper文件   
  1. <resultMap id="BaseResultMap" type="com.elements.user.model.User">
  2.         <id column="userId" property="userid" jdbcType="INTEGER" />
  3.         <result column="UserName" property="username" jdbcType="VARCHAR" />
  4.         <result column="UserEmail" property="useremail" jdbcType="VARCHAR" />
  5.         <association property="useridentification" column="userId"
  6.             javaType="com.elements.user.model.Useridentification">
  7.             <id property="userid" column="ui_id" />
  8.             <result property="code" column="code" />
  9.         </association>
  10.     </resultMap>

  11.     <select id="selectByPrimaryKey" resultMap="BaseResultMap"
  12.         parameterType="java.lang.Integer">

  13.         SELECT
  14.         u.userId as userId, u.UserName as UserName,
  15.         u.UserEmail as UserEmail, ui.userId as ui_id, ui.code as code
  16.         FROM
  17.         user
  18.         u,
  19.         useridentification ui
  20.         WHERE
  21.         u.userId = ui.userId
  22.         and u.userId = #{userid,jdbcType=INTEGER}
  23.     </select>


二、一个对象内包括一个list的情况 (1对多)

  • 先看看数据的设计

我们先有一个主表 acpz,他有kjq和pzh两个主键,又设计了他的一个从表axpzmx的他的明细表.
  • 我们希望读取主表的时候就加载从表的明细数据,那么在acpz内就有另一个明细的list :private List  mxlist;
  1. public class Acpz extends AcpzKey {
  2.     /**
  3.      * This field was generated by MyBatis Generator.
  4.      * This field corresponds to the database column acpz.acct_amt
  5.      *
  6.      * @mbggenerated Tue Apr 26 20:36:48 CST 2016
  7.      */
  8.     private Long acctAmt;
  9.     
  10.     
  11.     private List<Axpzmx> mxlist;
  12.     

  13.     public List<Axpzmx> getMxlist() {
  14.         return mxlist;
  15.     }

  16.     public void setMxlist(List<Axpzmx> mxlist) {
  17.         this.mxlist = mxlist;
  18.     }

  19.     /**
  20.      * This method was generated by MyBatis Generator.
  21.      * This method returns the value of the database column acpz.acct_amt
  22.      *
  23.      * @return the value of acpz.acct_amt
  24.      *
  25.      * @mbggenerated Tue Apr 26 20:36:48 CST 2016
  26.      */
  27.     public Long getAcctAmt() {
  28.         return acctAmt;
  29.     }

  30.     /**
  31.      * This method was generated by MyBatis Generator.
  32.      * This method sets the value of the database column acpz.acct_amt
  33.      *
  34.      * @param acctAmt the value for acpz.acct_amt
  35.      *
  36.      * @mbggenerated Tue Apr 26 20:36:48 CST 2016
  37.      */
  38.     public void setAcctAmt(Long acctAmt) {
  39.         this.acctAmt = acctAmt;
  40.     }

  41.     @Override
  42.     public String toString() {
  43.         return "Acpz [acctAmt=" + acctAmt + ", " + super.toString() + ", mxlist=" + mxlist+"]";
  44.     }
  45.     
  46.     
  47. }

  • mapper文件

  1.    <resultMap type="com.elements.acpz.model.Acpz" id="AcpzResult">
  2.         <id property="kjq" column="kjq" />
  3.         <id property="pzh" column="pzh" />
  4.         <result property="acctAmt" column="acct_amt" />
  5.         <collection property="mxlist" ofType="com.elements.acpz.model.Axpzmx">
  6.             <id property="kjq" column="kjq" />
  7.             <id property="pzh" column="pzh" />
  8.             <id property="id" column="id" />
  9.             <result property="acctCode" column="acct_code" />
  10.             <result property="accAmt" column="mx_acct_amt" />
  11.         </collection>
  12.     </resultMap>

  13.     <select id="selectByPrimaryKey" parameterType="com.elements.acpz.model.AcpzKey"
  14.         resultMap="AcpzResult">
  15.         SELECT
  16.         pz.kjq as kjq,
  17.         pz.pzh as pzh,
  18.         pz.acct_amt
  19.         as acct_amt,
  20.         mx.id as id,
  21.         mx.acct_code as acct_code,
  22.         mx.acc_amt as
  23.         mx_acct_amt
  24.         FROM
  25.         mybatis.acpz pz,
  26.         axpzmx mx
  27.         WHERE
  28.         pz.kjq = mx.kjq AND
  29.         pz.pzh = mx.pzh
  30.         and pz.kjq=#{kjq,jdbcType=VARCHAR}
  31.         and pz.pzh=#{pzh,jdbcType=VARCHAR}
  32.          
  33.     </select>


  34.     <select id="selectAll" parameterType="com.elements.acpz.model.AcpzKey"
  35.         resultMap="AcpzResult">
  36.         SELECT
  37.         pz.kjq as kjq,
  38.         pz.pzh as pzh,
  39.         pz.acct_amt
  40.         as acct_amt,
  41.         mx.id as id,
  42.         mx.acct_code as acct_code,
  43.         mx.acc_amt as
  44.         mx_acct_amt
  45.         FROM
  46.         mybatis.acpz pz,
  47.         axpzmx mx
  48.         WHERE
  49.         pz.kjq = mx.kjq AND
  50.         pz.pzh = mx.pzh
  51.         
  52.          
  53.     </select>

  • 数据库主键和mapper配置文件的关系


     项目代码:http://pan.baidu.com/s/1hrN5pNQ

阅读(2441) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~