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:数据库列名或者别名

  • 相关阅读:
    Proc、宿主变量、指示变量、数组变量、通信区sqlca,oraca ---(day07)
    Cursor、Exception、Procedure、Function、Package、Trigger(day06)
    大话设计模式C++版——建造者模式
    大话设计模式C++版——观察者模式
    大话设计模式C++版——代理模式
    大话设计模式C++版——工厂模式在COM中的典型应用
    大话设计模式C++版——抽象工厂模式
    大话设计模式C++版——工厂方法模式
    exe文件无法打开
    数据驱动编程之表驱动法
  • 原文地址:https://www.cnblogs.com/xiaohanzong/p/13812916.html
Copyright © 2011-2022 走看看