SQL映射文件的几个顶级元素

mapper - namespace

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

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

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

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

insert – 映射插入语句

update – 映射更新语句

delete – 映射删除语句

select – 映射查询语句

注意:按照定义的顺序

 mapper

namespace:命名空间.(dtd)

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

注意:

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

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

 select

a.查询语句的标签

b.常用属性

id

命名空间中唯一的标识符

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

parameterType

传入SQL语句的参数类型

resultType

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

c. parameterType

基础数据类型

int、String、Date等

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

复杂数据类型

Java实体类、Map等

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

注意:#{}和${}的区别

${}是原样输出.(可以导致sql注入)

#{}是会给值加入一对双引号.'value'.(建议适用这个)

d. resultMap

<resultMap type="数据类型" id="id">

<result property="d性名" column="数据库列名"/>

<result property="userCode" column="userCode"/>

</resultMap>

注意:resultType和resultMap的区别

resultType :直接表示返回类型

基本数据类型

复杂数据类型

resultMap :对外部resultMap的引用

应用场景:

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

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

e.resultMap的自动映射

前提:字段名与属性名一致

设置级别autoMappingBehavior:

NONE : 禁止映射

PARTIAL:自动匹配所有(没有嵌套association,collection)

FULL: 自动匹配所有.

例:<setting name="autoMappingBehavior" value="FULL"/>

f.属性

id 在命名空间中唯一的标识符,可以被用来引用这条语句

parameterType 将会传入这条语句的参数类的完全限定名或别名

resultType 从这条语句中返回的期望类型的类的完全限定名或别名。注意集合情形,那应该是集合可以包含的类型,而不能是集合本身。使用resultType或resultMap,但不能同时使用

resultMap  命名引用外部的resultMap

flushCache 将其设置为true,不论语句什么时候被调用,都会导致缓存被清空。默认值:false

useCache 将其设置为true,将会导致本条语句的结果被缓存。默认值:true

timeout  这个设置驱动程序等待数据库返回请求结果,并抛出异常时间的最大等待值。默认不设置(驱动自行处理)

fetchSize 这是暗示驱动程序每次批量返回的结果行数

statementType STATEMENT,PREPARED或CALLABLE的一种。让MyBatis选择使用Statement,PreparedStatement或CallableStatement。默认值:PREPARED

resultSetType FORWARD_ONLY|SCROLL_SENSITIVE|SCROLL_INSENSITIVE中的一种。默认是不设置(驱动自行处理)

insert(增加)

id

parameterType

例:

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

insert into  smbms_user (userCode,userName,userPassword)

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

</insert>

注意:insert、update、delete元素均没有resultType属性

默认返回int类型.

update

例:

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

update smbms_user

set userCode = #{userCode},

userName = #{userName},

userPassword = #{userPassword}

where id = #{id}

</update>

 delete

例:

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

delete from smbms_user where id = #{id}

</delete>

SQL映射文件的更多相关文章

  1. 初始MyBatis、SQL映射文件

    MyBatis入门 1.MyBatis前身是iBatis,是Apache的一个开源项目,2010年这个项目迁移到了Google Code,改名为MyBatis,2013年迁移到GitHub.是一个基于 ...

  2. 二:SQL映射文件

    二:SQL映射文件 1.SQL映射文件: (1)mapper:映射文件的根元素节点,只有一个属性namespace(命名空间) 作用:用于区分不同的mapper全局唯一 绑定dao接口即面向接口编程, ...

  3. Mybatis sql映射文件浅析 Mybatis简介(三)

    简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML为载体映射SQL 之前提到过,各项配置信息将Mybatis应用的整 ...

  4. 了解一下SQL映射文件

    1:SQL映射文件 MyBatis真正强大之处就在于SQL映射语句,相对于强大的功能,SQL映射文件的配置非常简单,与JDBC相比减少了50%的代码.下面是关于SQL映射文件的几个顶级元素配置 map ...

  5. Mybatis sql映射文件浅析 Mybatis简介(三) 简介

    Mybatis sql映射文件浅析 Mybatis简介(三)   简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML ...

  6. SQL映射文件-----MySQL关系映射【1对1,1对多,多对多】

    SSM框架下,mapper.xml 中 association 标签和 collection 标签的使用 当数据库中表与表之间有关联时,在对数据库进行操作时,就不只是针对某一张表了,需要联表查询 My ...

  7. MyBatis -- sql映射文件具体解释

    MyBatis 真正的力量是在映射语句中. 和对等功能的jdbc来比价,映射文件节省非常多的代码量. MyBatis的构建就是聚焦于sql的. sql映射文件有例如以下几个顶级元素:(按顺序) cac ...

  8. MyBatis 创建核心配置文件和 SQL 映射文件

    Mybatis 的两个配置文件(mybatis-config.xml  和 xxxMapper.xml)都为 xml 类型,因此在 eclipse 中创建 xml 文件命名为相应的 mybatis-c ...

  9. MyBatis 的基本要素—SQL 映射文件

    MyBatis 真正的强大在于映射语句,相对于它强大的功能,SQL 映射文件的配置却是相当简单.对比 SQL 映射配置和 JDBC 代码,发现使用 SQL 映射文件配置可减少 50% 以上的代码,并且 ...

随机推荐

  1. Nginx 部署HTTPS

    Nginx 部署HTTPS 系统:Linux Centos 7.4 x64 软件:Nginx 1.12.2 注:需要阿里云申请本地域名与证书并添加下载到本地. 注:证书文件为 xxxx.pem 与 x ...

  2. 如何用纯 CSS 创作一个跳动的字母 i

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/pZbrpJ 可交互视频 ...

  3. kerberos master-slave搭建

    1. 安装kerberos server yum install krb5-server krb5-libs krb5-auth-dialog client yum install krb5-work ...

  4. mysql系列之多实例介绍

    介绍: mysql多实例,简单理解就是在一台服务器上,mysql服务开启多个不同的端口(如3306.3307),运行多个服务进程.这些 mysql 服务进程通过不同的 socket来监听不同的数据端口 ...

  5. Ansible Playbooks入门介绍

    1.目录结构 2.详细目录 3.主任务文件main.yaml 主任务文件main.yaml - name: print server name and user to remote testbox # ...

  6. git介绍及常用命令

    Git简介 linus 用C语言编写 2005年诞生 分布式版本管理系统 速度快,适合大规模,跨地区多人协同开发 分布式管理 Git 生态 Git 分布式版本管理系统 Gitlab git私库解决方案 ...

  7. QT 样式表基础知识

    1. 何为Qt样式表2. 样式表语法基础3. 方箱模型4. 前景与背景5. 创建可缩放样式6. 控制大小7. 处理伪状态8. 使用子部件定义微观样式 8.1. 相对定位    8.2. 绝对定位 摘要 ...

  8. Vue-cli add sass modules

    终端cd至要安装的文件夹中 再执行以下命令 安装node-sass 和 sass-loader npm i node-sass sass-loader --save-dev 在需要使用scss地方引入 ...

  9. git rm -r --cache命令 及 git .gitignore 文件

    git 的  .gitignore 文件的作用是在代码提交时自动忽略一个文件.不将其纳入版本控制系统. 比如.一般我们会忽略IDE自动生成的配置文件等. 如果一个你要忽略的文件已经纳入到了git ,也 ...

  10. Android系统源代码

    Android系统源代码 在线源码网站 1,http://androidxref.com 2,http://www.grepcode.com/ 3,http://www.androidos.net.c ...