zoukankan      html  css  js  c++  java
  • SQL映射文件

    SQL映射XML文件
    SQL映射文件几个顶级元素,按照定义的顺序
    mapper-namespace
    cache-配置给定空间名的缓存配置
    cache-ref-从其他命名空间引用缓存配置
    resultMap用来猫叔数据库集和它对象的对应关系
    sql可从用的sql语句,也可以被其他语句引用
    insert映射插入语句<update id="方法名" paramterType="参数"><update/>
    select映射查询语句<select id="方法名" resultType="数据类型">
    update映射跟新语句
    delete映射查询语句
     
    mapper
    namespace:命名空间
    namespace和子元素的id联合保证唯一,区别不同的mapper
    绑定DAO接口
    namespace的命名必须跟某个接口同名
    接口中的方法与映射文件中SQL语句id一一对应
    示例
    <mapper namespace="cn.smbms.dao.user.UserMapper">
    <select id="getUserList" …
    ……
    </select>
    </mapper>
     
    id
    命名空间中唯一的标识符
    接口中的方法与映射文件中的SQL语句id一一对应
    parameterType
    传入SQL语句的参数类型
    resultType
    SQL语句返回值类型的完整类名或别名
     
    parameterType
    基础数据类型
    int、String、Date等
    只能传入一个,通过#{参数名}即可获取传入的值
    复杂数据类型
    Java实体类、Map等
    通过#{属性名}或者#{map的keyName}即可获取传入值
     
     
    resultMap解决实体类和数据库名字对应的问题,解决连表查询问题
    示例:
    <resultMap type="实体类名" id="调用时用的名字">
    <result property="id" column="id"/> 表示查询出来的属性对应的值赋予实体类对象的哪个属性
    <result property="userCode" column="userCode"/> 从数据库查询
    类名或别名
    <result property="userName" column="userName"/>
    <result property="userRole" column=“userRole"/>
    <result property="userRoleName" column="roleName"/>
    </resultMap>
    <select id="getUserList" resultMap="userList" parameterType="User">一个
    外部resultMap的id,表示返回结果映射到那个resultMap上
    select u.*,r.roleName from smbms_user u,smbms_role r
    where u.userName like CONCAT (‘%’,#{userName}, ‘%’)
    and u.userRole = #{userRole} and u.userRole = r.id
    </select>
     
    resultType :直接表示返回类型
    基本数据类型
    复杂数据类型
    resultMap :对外部resultMap的引用
    应用场景:
    数据库字段信息与对象属性不一致
    复杂的联合查询,自由控制映射结果
    二者不能同时存在,本质上都是Map数据结构
     
    resultMap
    resultMap属性
    id :resultMap的唯一标识
    type:java实体类
    resultMap子元素
    id:一般对应数据库中该行的主键,设置此项可提高MyBatis性能
    result:映射到JavaBean的某个简单类型属性
    association:映射到JavaBean的某个复杂属性,比如JavaBean类
    collection:映射到JavaBean的某个复杂属性,比如集合
     
     
    association
    复杂的类型关联,一对一
    内部嵌套
    映射一个嵌套JavaBean属性
    属性
    property:映射数据库列的实体对象的属性
    javaType:完整Java类名或者别名
    resultMap:引用外部resultMap
    子元素
    id
    result
    property:映射数据库列的实体对象的属性
    column:数据库列名或者别名
     
    collection
    复杂类型集合,一对多
    内部嵌套
    映射一个嵌套结果集到一个列表
    属性
    property:映射数据库列的实体对象的属性
    ofType:完整Java类名或者别名(集合所包括的类型)
    resultMap:引用外部resultMap
    子元素
    id
    result
    property:映射数据库列的实体对象的属性
    column:数据库列名或者别名

  • 相关阅读:
    Python 学习日记 第七天
    Python 学习日记 第六天
    Python 学习日记 第五天
    Python 学习日记 第四天
    Redis 中的数据类型及基本操作
    Asp.net mvc 中View 的呈现(二)
    Asp.net mvc 中View的呈现(一)
    Asp.net mvc 中Action 方法的执行(三)
    Asp.net mvc 中Action 方法的执行(二)
    Asp.net mvc 中Action 方法的执行(一)
  • 原文地址:https://www.cnblogs.com/xiaohanzong/p/13812916.html
Copyright © 2011-2022 走看看