罗列Mapper中最常用部分

标签常见属性(备忘)

<select
id=""
parameterType=""
parameterMap=""
resultType=""
resultMap=""
flushCache=""
useCache=""
timeout=""
fetchSize=""
statementType=""
resultSetType=""
> <insert
id=""
parameterType=""
flushCache=""
statementType=""
keyProperty=""
keyColumn=""
useGeneratedKeys=""
timeout=""
> <update
id=""
parameterType=""
flushCache=""
timeout=""
statementType=""
> <delete
id=""
parameterType=""
flushCache=""
timeout=""
statementType=""
>

参数样例

<delete id = "deleteUser" parameterType="User">

delete from user_table

where age = {age,javaType=int,jdbcType=NUMERIC,typeHandler=AgeTypeHandler}

<delete>

resultType、resultMap、discriminator

resultType :

  1. 支持基本数据类型、基本数据包装类,支持自定义实体类(列名与包装类中的属性名至少有一个一致--->创建包装类对象)
  2. 一般来说resultType所指的输出类型是一种Java的原始或包装类型,并且从数据库取出的字段名称无须任何转换
  3. 如果没有合适的JavaBean,还可以是HashMap类型的数据,讲输出的字段名称作为map的key,value为字段值。如果是集合,那是因为list里面嵌套HashMap

resultMap:

  1. 提供一种SQL结果输出映射类型。即建立列名和实体类属性之间的映射关系

  2. 一般来说列名和属性不一致,有时还需要制定相应的数据类型

    复杂用法

    1. 关联的嵌套结果 association标签 :声明映射的Java类型中包含的其他Java类的属性
    2. 集合的嵌套结果 collection标签 :声明映射的Java类中的包含的集合类型

discriminator:

有时候需要根据某个字段的值,来决定关联哪种结果集。eg.根据 性别标志来决定关联男生类还是女生类。

自动映射

  1. 如果SQL语句查询的结果中有列名与Java包装类中的属性名一致,则该字段就会被映射到该属性上。如果有一部分不一致,那么之后需要在resultMap中指定这部分的映射。
  2. 如果在resultMap中不希望自动映射配置外的其他字段,设置autoMapping=false。优先级高于,下面的三种模式
  3. 很多时候数据库的明明规则和Java是不一样的,在全局配置文件中配置 mapUnderscoreToCamelCase属性为true,自动映射数据库下划线字段和Java的驼峰属性,想想就不自觉地露出微笑。

三种模式:

  1. NONE 不启用自动映射
  2. PARTIAL 嵌套的resultMap不启用自动映射
  3. FULL 所有resultMap都启用自动映射

动态SQL语句

<if test>

<foreach>

<!--简单例子-->
<mapper namespace=" "> <insert
parameterType="输入参数类型"
parameterMap="输入参数集合"
resultType="结果类型"
resultClass="结果类"
resultMap= "结果集合">
</insert> <select id="findUserById" parameterType="int" resultType="User" >
select * from user_table where id = #{id}
</select> <select id="findUserByName" parameterType="String" resultType="User" >
select * from user_table where user_name Like '%${value}%'
</select> <insert id = "insertUser" parameterType="User" >
<selectKey keyProperty="id" order="BEFORE" resultType="String">
select 序列名.nextval()
</selectKey>
insert into user()
values()
</insert> //update返回执行之后被改变的信息条数
<update id="updateUserById" parameterType="User" >
update user_table set user_name=#{username} where id = #{id}
</update> <delete id="deleteUserById" parameterType="Integer" >
delete from user_table where id = #{id}
</delete> </mapper>

mybatis SQL映射配置文件的更多相关文章

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

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

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

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

  3. Mybatis SQL映射文件详解

    Mybatis SQL映射文件详解 mybatis除了有全局配置文件,还有映射文件,在映射文件中可以编写以下的顶级元素标签: cache – 该命名空间的缓存配置. cache-ref – 引用其它命 ...

  4. MyBatis XML 映射配置文件

    配置文件的基本结构 configuration —— 根元素 properties —— 定义配置外在化 settings —— 一些全局性的配置 typeAliases —— 为一些类定义别名 ty ...

  5. mybatis~SQL映射

    student.xml里面是这么写的: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE m ...

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

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

  7. SSM - Mybatis SQL映射文件

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

  8. Mybatis XML 映射配置文件 -- 熟悉配置

    来源:http://www.mybatis.org/mybatis-3/zh/configuration.html properties mybatis读取属性顺序. 如果属性在不只一个地方进行了配置 ...

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

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

随机推荐

  1. PAT——1038. 统计同成绩学生

    本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最后1行给出要查 ...

  2. 生产者-消费者模型-线程安全队列Queue

    #python3 #product new data into the queue #comsume data from the queue from queue import Queue impor ...

  3. 2017年秋招美团Java程序员开发,看我如何拿到offer

    本人是一名本科毕业非计算机专业的程序员,面了阿里,结果没过,最后面上了美团,热乎乎的面经,昨天面的美团,虽然面完了HR面,但是感觉希望不大,希望能走运拿到offer吧.记性不是太好,有一些问题没能记住 ...

  4. pl/sql下载

    详解Oracle客户端工具:PL/SQL工具下载: 下载地址:http://www.oraclejsq.com/article/010100114.html

  5. iOS:通信录(完成)(18-01-18更)

    1.读取通信录 1).9.0以前:AddressBook 2).9.0以后:Contacts 2.调用通信录UI(不弄) 1).9.0以前:AddressBookUI 2).9.0以后:Contact ...

  6. SQL中的CONVERT();cast()函数

    SQLSERVER中CONVERT函数格式: CAST (expression AS data_type) 参数说明: expression:任何有效的SQLServer表达式. AS:用于分隔两个参 ...

  7. 如何通过github上传项目并在readme.md中展示图片二维码

    将本地项目上传至github   第一步:git init (创建仓库)   第二步:git add README.md (添加项目)git add *   第三步:git commit -m &qu ...

  8. BZOJ 3489: A simple rmq problem(K-D Tree)

    Time Limit: 40 Sec  Memory Limit: 512 MBSubmit: 2579  Solved: 888[Submit][Status][Discuss] Descripti ...

  9. VirtualBox + CentOS详细安装教程

    一.前期工作准备 电脑虚拟化开启(必要工作)大致流程: a.电脑开机时长按F12(F10)进入BIOS界面; b.依次选择Configuratio > Intel Virtual Technol ...

  10. 笔记:javascript操作iframe内的DOM元素,及调用iframe内的方法

    iframe相当于一个嵌入在网页内的浏览器,它与当前网页是隔离的. 但有时我们也需要在当前网页操作iframe内的元素或操作iframe内的javascript方法. 在网页内操作DOM元素,是使用d ...