zoukankan      html  css  js  c++  java
  • MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM)

     

    类型别名(typeAliases):
         
    作用:通过一个简单的别名来表示一个冗长的类型,这样可以降低复杂度。
        类型别名标签typeAliases中可以包含多个typeAlias,如下

    [html] view plain copy
     
    1. <typeAliases>  
    2.     <typeAlias alias="user" type="com.jefry.User"/>  
    3.         <typeAlias alias="student" type="com.jefry.student"/>  
    4.          ……  
    5.          ……  
    6.          ……  
    7. </typeAliases>  

    本着简单的原则,我还是接着上一讲实例代码来作修改
     在mybatis-config.xml文件增加一个<typeAliases>
        代码如下:

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8" ?>  
    2. <!DOCTYPE configuration  
    3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
    4. "http://mybatis.org/dtd/mybatis-3-config.dtd">  
    5. <configuration>  
    6.     <typeAliases>  
    7.         <typeAlias alias="user" type="com.jefry.User"/>  
    8.     </typeAliases>  
    9.       
    10.     <environments default="development">  
    11.         <environment id="development">  
    12.             <transactionManager type="JDBC"/>  
    13.             <dataSource type="POOLED">  
    14.                 <property name="driver" value="com.mysql.jdbc.Driver"/>  
    15.                 <property name="url" value="jdbc:mysql://127.0.0.1:3306/test"/>  
    16.                 <property name="username" value="root"/>  
    17.                 <property name="password" value="root"/>  
    18.             </dataSource>  
    19.         </environment>  
    20.     </environments>  
    21.     <mappers>  
    22.         <mapper resource="com/jefry/UserMapper.xml"/>  
    23.     </mappers>  
    24. </configuration>  


    那么在UserMapper.xml文件中type="com.jefry.User"就可以替换为user
    如下:

    [html] view plain copy
     
    1. <span style="font-size:14px;"><?xml version="1.0" encoding="UTF-8" ?>    
    2. <!DOCTYPE mapper    
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"    
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">    
    5. <mapper namespace="User">    
    6.     <!--resultType 表示com.jefry.User这样一个实体对象 -->    
    7.     <select id="selectUser" parameterType="int" resultType="user">    
    8.         select * from t_user where id = #{id}    
    9.     </select>    
    10. </mapper>  </span>  

    表-对象映射

            上一讲中实例,我们并没有配置表的字段与实体属性之间的关联,但是我们却得到了我们想要的实例对象。原因是我们的t_user表的各个字段名与User类的成员属性名完全一致,一旦t_user表的各个字段名与User类的成员属性名不同(比如t_user某个字段是name,而User的属性却是username)怎么办呢?
           MyBitis借助resultMap实现了表-对象映射如下:

    [html] view plain copy
     
    1. <span style="color:#000000;"><resultMap id="userResultMap" type="user">   
    2.         <id property="id" column="id"/>   
    3.         <result property="userName" column="name"/>   
    4.         <result property="password" column="pass"/>   
    5.      </resultMap></span>  


     根据字面意思我们很容易将字段与属性映射起来。
     需要主要的是 resultType="com.jefry.User">变为resultMap="userResultMap"啦。

    [html] view plain copy
     
    1. <span style="color:#000000;">    <select id="selectUser" parameterType="int"  resultMap="userResultMap" >  
    2.         select * from t_user where id = #{id}   
    3.     </select></span>  

    新的UserMapper.xml代码如下:

    [html] view plain copy
     
    1. <span style="color:#000000;"><?xml version="1.0" encoding="UTF-8" ?>  
    2. <!DOCTYPE mapper  
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
    5. <mapper namespace="user">  
    6.      <resultMap id="userResultMap" type="user">   
    7.         <id property="id" column="id"/>   
    8.         <result property="userName" column="name"/>   
    9.         <result property="password" column="pass"/>   
    10.      </resultMap>  
    11.       
    12.     <!--resultType 表示com.jefry.User这样一个实体对象 -->  
    13.     <select id="selectUser" parameterType="int"  resultMap="userResultMap" >  
    14.         select * from t_user where id = #{id}  
    15.     </select>  
    16. </mapper></span
  • 相关阅读:
    架构设计
    Asp.net MVC突然变慢,缓存消失的一种原因
    B2C电子商务系统研发——商品SKU分析和设计(二)
    ASP.NET MVC下基于异常处理的完整解决方案
    【C#.NET】利用FastDFS打造分布式文件系统
    C#
    50个必备的实用jQuery代码段
    可视化组件库(The Visual Component Library)
    TortoiseHg 2.2.2
    企业信息开发平台
  • 原文地址:https://www.cnblogs.com/shijiaoyun/p/5157527.html
Copyright © 2011-2022 走看看