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

    第二章SQL映射文件

    SQL映射文件的几个顶级元素(按照定义的顺序)

    mapper - namespace

    cache - 配置给定命名空间的缓存

    cache-ref – 从其他命名空间引用缓存配置

    resultMap –用来描述数据库结果集和对象的对应关系

    sql – 可以重用的SQL块,也可以被其他语句引用

    insert – 映射插入语句

    update – 映射更新语句

    delete – 映射删除语句

    select – 映射查询语句

    1.mapper

    namespace:命名空间

    namespace和子元素的id联合保证唯一,区别不同的mapper

    绑定DAO接口

    namespace的命名必须跟某个接口同名

    接口中的方法与映射文件中SQL语句id一一对应

    2.select语句有很多属性可以详细配置每一条语句

    id

    命名空间中唯一的标识符

    接口中的方法与映射文件中的SQL语句id一一对应

    parameterType

    传入SQL语句的参数类型

    resultType

    SQL语句返回值类型的完整类名或别名

    3.parameterType

    基础数据类型

    intStringDate

    只能传入一个,通过#{参数名}即可获取传入的值

    复杂数据类型

    Java实体类、Map

    通过#{属性名}或者#{mapkeyName}即可获取传入值

    4.resultType :直接表示返回类型

    基本数据类型

    复杂数据类型

    resultMap :对外部resultMap的引用

    应用场景:

    数据库字段信息与对象属性不一致

    复杂的联合查询,自由控制映射结果

    resultMap自动映射匹配前提:字段名与属性名一致

    二者不能同时存在,本质上都是Map数据结构

    5.

    <insert  id="add" parameterType="User" >

     insert into  smbms_user (userCode,userName,userPassword)

    values ( #{userCode},#{userName},#{userPassword})

    </insert>

    <update id ="modify" parameterType="User">

    update smbms_user set userCode = #{userCode},

             userName = #{userName},

                  userPassword = #{userPassword}  where id = #{id}

    </update>

    <delete id ="deleteUserById" parameterType="int">

    delete from smbms_user where id = #{id}

    </delete>

    <select id="getUserList" resultMap="userList" parameterType="User">

    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>

     

    6.DAO层接口方法常见的返回类型

    Java对象、MapList等复杂数据类型

    int

    (增删改)更新操作时,影响的数据行数

    MyBatis参数入参

    @Param注解参数

    封装成对象入参

    7.resultMap属性

    id

    resultMap的唯一标识

    type

    Java实体类

    resultMap子元素

    id

    一般对应数据库中该行的主键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:数据库列名或者别名

  • 相关阅读:
    MongoDB学习(1)—在Windows系统中安装MongoDB
    在windows系统的文件右键菜单中增加“命令提示符”
    python基础五之字典
    python基础四之列表
    python基础三之字符串
    python基础二
    python基础一
    二叉搜索树与双向链表
    记录一下Comparator的用法
    根节点到叶子节点路径之和为target
  • 原文地址:https://www.cnblogs.com/yaoyao9/p/13790668.html
Copyright © 2011-2022 走看看