`

ibatis中resultMap映射

阅读更多

1: ibatis配置文件

 

<typeAlias alias="webUser" type="com.model.WebUser" />

 

<resultMap id="get-user-result" class="webUser">
  <result property="uid" column="UID" />
  <result property="uno" column="UNo" />
  <result property="uname" column="UName" />
  <result property="pswd" column="Pswd" />
  <result property="sidType" column="SID" />
  <result property="dn" column="DN" />
  <result property="role" column="RoleId" select="wbst_webRole.getRoleById"/>
  <result property="brNo" column="SysAuxCode" />
  <result property="stateType" column="State" />

 

 // 看 还可以用这种方式赋值呢哦 


  <result property="member" column="CltNo" select="wbst_member.getMemberByNo"/>
  <result property="userActionType" column="Action" />
  <result property="firstEnterType" column="FirstEnter" />
  <result property="webContentUser" column="UID" select="wbst_webContent.getLastContentByUserSource" />
  <result property="activeType" column="Active" />
  <result property="rejectType" column="{sourceId=UID,action=action}" select="wbst_webContent.getRejectByUser"/>
 </resultMap>
 
 <select id="getUserById" parameterClass="int" resultMap="get-user-result">
  select * from wfuser where "UID"=#value#
 </select>

 

2: webUser类

 

public class WebUser implements Serializable {
 protected Integer uid;
 protected String uno;
 protected String uname;
 protected String pswd;
 protected UserState sid;
 protected String dn;
 protected WebRole role;
  protected String brNo;
 protected OpenState state;
 protected Member member;
 protected UserAction userAction;
 protected FirstEnter firstEnter;
 protected WebContentUser webContentUser;
 protected Activated active;
 private Reject reject;
 
 public WebUser(){
  
 }
 
 public Reject getReject() {
  return reject;
 }

 public void setReject(Reject reject) {
  this.reject = reject;
 }
 
 public void setRejectType(Integer reject) {
  if(reject == null)
   return ;
  this.reject = Reject.getType(reject);
 }

 public WebContentUser getWebContentUser() {
  return webContentUser;
 }

 public void setWebContentUser(WebContentUser webContentUser) {
  this.webContentUser = webContentUser;
 }

 public Activated getActive() {
  return active;
 }

 public void setActive(Activated active) {
  this.active = active;
 }
 

// 通过如下这种方式未active类赋值,active为枚举类在下面会有介绍

 


 public void setActiveType(Integer active) {
  if(active == null)
   return;
  this.active = Activated.getType(active);
 }

 public OpenState getState() {
  return state;
 }

 public void setState(OpenState state) {
  this.state = state;
 }
 
 public void setStateType(Integer state) {
  if(state == null)
   return;
  this.state = OpenState.getType(state);
 }

 public FirstEnter getFirstEnter() {
  return firstEnter;
 }

 public void setFirstEnter(FirstEnter firstEnter) {
  this.firstEnter = firstEnter;
 }
 
 public void setFirstEnterType(Integer firstEnter) {
  if(firstEnter == null)
   return;
  this.firstEnter = FirstEnter.getType(firstEnter);
 }

 public UserAction getUserAction() {
  return userAction;
 }

 public void setUserAction(UserAction userAction) {
  this.userAction = userAction;
 }

 public void setUserActionType(Integer userAction) {
  if(userAction == null)
   return ;
  this.userAction = UserAction.getType(userAction);
 }
 
 public Member getMember() {
  return member;
 }

 public void setMember(Member member) {
  this.member = member;
 }

 public String getPswd() {
  return pswd;
 }

 public void setPswd(String pswd) {
  this.pswd = pswd;
 }

 public UserState getSid() {
  return sid;
 }

 public void setSid(UserState sid) {
  this.sid = sid;
 }
 
 public void setSidType(Integer sid){
  if(sid == null)
   return;
  this.sid=UserState.getType(sid);
 }

 public String getBrNo() {
  return brNo;
 }

 public void setBrNo(String brNo) {
  this.brNo = brNo;
 }

 public String getDn() {
  return dn;
 }

 public void setDn(String dn) {
  this.dn = dn;
 }

 public WebRole getRole() {
  return role;
 }

 public void setRole(WebRole role) {
  this.role = role;
 }

 public Integer getUid() {
  return uid;
 }

 public void setUid(Integer uid) {
  this.uid = uid;
 }

 public String getUname() {
  return uname;
 }

 public void setUname(String uname) {
  this.uname = uname;
 }

 public String getUno() {
  return uno;
 }

 public void setUno(String uno) {
  this.uno = uno;
 }
 
 public String toString(){
  return "{UID=" + getUid() + " : UNo=" + getUno() + "\n\r" + " : UName="
    + getUname() + "}\n\r" + getRole() + "\n" + getMember()
    + "\n\r" + getSid();
 }
}

 

 

3: 在类加载时静态变量被加载,并初始化map的值了。

public class Activated extends EnumerateType{
 private static TreeMap map = new TreeMap();

 private Activated(int code, String text) {
  super(String.valueOf(code), text);
  map.put(getCode(), this);
 }

 /**
  * 根据类型号返回类型对象。
  */
 public static Activated getType(Integer code) {
  return (Activated) map.get(String.valueOf(code));
 }

 public static Activated getType(int code) {
  return (Activated) map.get(String.valueOf(code));
 }

 /**
  * 取全部类型列表
  */
 public static Activated[] getTypeList() {
  Activated[] list = new Activated[map.size()];
  map.values().toArray(list);
  return list;
 }

 /** 0:未激活 */
 public static Activated USER_NONACTIVATED = new Activated(0, "未激活");
 /** 1:已激活 */
 public static Activated USER_ACTIVATED = new Activated(1, "已激活");
}

 

 

 

4:所有枚举类的父类

 

public class EnumerateType
/*    */   implements Serializable, Comparable, OptionObject
/*    */ {
/*    */   private String code;
/*    */   private String text;
/*    */
/*    */   protected EnumerateType(String code, String text)
/*    */   {
/* 24 */     this.code = code;
/* 25 */     this.text = text;
/*    */   }
/*    */
/*    */   public String getCode()
/*    */   {
/* 33 */     return this.code;
/*    */   }
/*    */
/*    */   public String getValue()
/*    */   {
/* 41 */     return this.code;
/*    */   }
/*    */
/*    */   public String getText()
/*    */   {
/* 49 */     return this.text;
/*    */   }
/*    */
/*    */   public int compareTo(Object o)
/*    */   {
/* 58 */     EnumerateType type = (EnumerateType)o;
/* 59 */     return getCode().compareTo(type.getCode());
/*    */   }
/*    */
/*    */   public boolean equals(Object o)
/*    */   {
/* 68 */     if (o == this) {
/* 69 */       return true;
/*    */     }
/* 71 */     if (o instanceof EnumerateType) {
/* 72 */       EnumerateType type = (EnumerateType)o;
/* 73 */       return (type.getCode() == getCode());
/*    */     }
/* 75 */     return false;
/*    */   }
/*    */
/*    */   public int hashCode()
/*    */   {
/* 84 */     return this.code.hashCode();
/*    */   }
/*    */
/*    */   public String toString()
/*    */   {
/* 92 */     return "code=" + this.code + " , " + "text=" + this.text;
/*    */   }
/*    */ }

分享到:
评论

相关推荐

    ibatis实现原理解析

    1. SQL映射文件:Ibatis通过XML或注解方式定义SQL语句,这些语句被封装在SQL映射文件中。映射文件包含了各种SQL操作,如查询、插入、更新和删除等。 2. 映射器接口:在Java代码中,开发者定义一个接口,这个接口的...

    ibatis 的关系映射

    标题 "ibatis 的关系映射" 指涉的是在使用 iBatis 框架时,如何处理数据库中的关联关系,包括一对一、一对多和多对多的关系映射。iBatis 是一个轻量级的 Java ORM(对象关系映射)框架,它允许开发者将 SQL 查询直接...

    iBATIS-SqlMaps,ibatis映射文件

    在这些元素中,你可以通过来定义输入参数,通过&lt;resultMap&gt;来定义结果集的映射规则。 在映射文件中,iBATIS提供了强大的映射机制,比如自动类型转换、结果集嵌套处理、自动生成主键等。例如,和可以将查询结果的...

    Mybatis/ibatiS多表映射 一对一 一对多 extjs前台取值 详细讲解

    首先,我们来看Mybatis或iBatis在XML配置文件中的多表映射。以学生、班级和班主任为例,学生与班级是一对多关系,班级与班主任是一对一关系。在`classInfo-mapper.xml`配置文件中,我们定义了三个`resultMap`:`...

    IBatis: Discriminator Column Example – Inheritance Mapping(Ibatis中的继承映射)

    在iBATIS的映射文件中,我们需要定义一个`&lt;resultMap&gt;`来处理这种继承关系,并使用`&lt;discriminator&gt;`元素来根据`discriminator`列的值决定实例化哪个子类。 `&lt;resultMap&gt;`配置如下: ```xml &lt;resultMap id=...

    Ibatis一对一映射提示

    在iBATIS的映射文件中,你可以使用`&lt;resultMap&gt;`标签定义一对一的关系。例如,如果员工表(Employee)和部门表(Department)是一对一关系,可以这样配置: ```xml &lt;resultMap id="employeeResult" type=...

    ibatis 一对多 多对多完整映射

    在`ibatis`的映射文件中,你可以定义一个`resultMap`来表示父对象,然后通过`collection`元素来声明一对多的关系。`collection`元素的` ofType`属性指定子对象的类型,`property`属性则对应父对象中的集合属性名。 ...

    ibatis 一对多关系映射

    在`User`类的映射文件中,我们可以定义一个`resultMap`,它包含了`User`的基本属性以及一个嵌套的`orderList`,表示用户的所有订单: ```xml &lt;resultMap id="userResultMap" type="User"&gt; &lt;!-- 其他User属性映射...

    ibatis配置、映射文件详解.doc

    - `&lt;resultMap&gt;`:定义结果集映射,将数据库查询结果映射到Java对象。 通过这种方式,iBatis可以将数据库操作与业务逻辑解耦,使得代码更易于维护和扩展。 总结来说,iBatis的配置文件`sqlMapConfig.xml`是整个...

    深入分析 iBATIS 框架之系统架构与映射原理

    2. **结果集映射**:iBATIS 使用 `&lt;resultMap&gt;` 元素来定义结果集的映射规则,将数据库查询结果中的列与 Java 对象的属性对应起来。例如: ```xml &lt;resultMap id="userResultMap" class="User"&gt; &lt;/...

    \ibatis配置文件、映射文件详解

    - `&lt;resultMap&gt;`:定义查询结果如何映射到Java对象。 - `&lt;parameterMap&gt;`:定义SQL语句中的参数。 理解并熟练掌握`sqlMapConfig.xml`和映射文件的配置,是使用iBATIS进行数据访问的关键。通过合理配置,可以实现...

    ibatis2.0中文API

    在映射文件中,我们可以定义`&lt;resultMap&gt;`来映射对象属性和字段,使用`&lt;id&gt;`、`&lt;result&gt;`等元素来指定主键和普通字段。此外,还可以使用`&lt;select&gt;`、`&lt;insert&gt;`、`&lt;update&gt;`和`&lt;delete&gt;`标签来定义SQL语句,它们可以...

    记一次Ibatis的意外发生.docx

    ResultMapping是ResultMap中的一个属性,用于指定结果映射。在IBatis中,ResultMapping的名称需要加上namespace,例如:&lt;resultMap id="xxxMap" class="xxx"&gt; &lt;result property="abc" resultMap="ns.yyyMap"/&gt; &lt;/...

    ibatis案例

    5. **结果映射(ResultMap)**:Ibatis的ResultMap用于处理复杂的查询结果,它可以映射多对一、一对多的关系,或者处理自定义类型转换等复杂情况。 6. **动态SQL**:Ibatis的动态SQL功能允许在XML配置文件中编写...

    ibatis one to many mapping

    在一对多映射中,ResultMap 需要包含一个嵌套的结果集,表示一个主对象对应多个子对象的关系。 3. **association** 标签:这个标签用于表示一对一的关联,但也可以在一对多关系中使用。在一对多映射中,association...

    ibatis的dtd文件

    此外,还有`&lt;resultMap&gt;`用于定义结果集映射,`&lt;parameterMap&gt;`用于参数对象的映射等,这些元素都是通过`sql-map-2.dtd`定义的。 其次,`sql-map-config-2.dtd`则是Ibatis的SQL映射配置文件的DTD,它定义了整个...

    ibatis官方中文文档

    iBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,极大地提高了数据库操作的灵活性和便捷性。以下是对iBatis核心知识点的详细解析: 1. **简介**: iBatis是由Apache软件基金会维护的开源...

    ibatis中文开发指南

    3. 结果集映射:iBATIS提供了强大的结果集映射机制,通过`&lt;resultMap&gt;`元素可以指定字段与Java对象属性之间的对应关系,即使数据库表结构发生变化,也能保持Java对象结构的稳定。 4. 动态SQL:iBATIS的动态SQL功能...

Global site tag (gtag.js) - Google Analytics