博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xml映射文件
阅读量:6260 次
发布时间:2019-06-22

本文共 2564 字,大约阅读时间需要 8 分钟。

hot3.png

一、mapper xml文件

SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):

cache – 给定命名空间的缓存配置。cache-ref – 其他命名空间缓存配置的引用。resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。parameterMap – 已废弃!老式风格的参数映射。内联参数是首选,这个元素可能在将来被移除,这里不会记录。sql – 可被其他语句引用的可重用语句块。insert – 映射插入语句update – 映射更新语句delete – 映射删除语句select – 映射查询语句

1、

select

(1)接受一个 int(或 Integer)类型的参数

(2)返回一个 HashMap 类型的对象

(3)select 元素有很多属性允许你配置,来决定每条语句的作用细节

2、insert, update 和 delete

(1)配置

(2)sql示例

insert into Author (id,username,password,email,bio) values (#{id},#{username},#{password},#{email},#{bio})
update Author set username = #{username}, password = #{password}, email = #{email}, bio = #{bio} where id = #{id}
delete from Author where id = #{id}

(3)生成主键

insert into Author (username,password,email,bio) values (#{username},#{password},#{email},#{bio})

(4)多行插入

insert into Author (username, password, email, bio) values
(#{item.username}, #{item.password}, #{item.email}, #{item.bio})

3、sql

(1)定义可重用的 SQL 代码段,可以包含在其他语句中:

${alias}.id,${alias}.username,${alias}.password

这个 SQL 片段可以被包含在其他语句中:

属性值也可以被用在 include 元素的 refid 属性里:

或 include 内部语句中:

${prefix}Table

4、参数(Parameters)

(1)参数也可以指定一个特殊的数据类型:

#{property,javaType=int,jdbcType=NUMERIC}

(2)指定一个特殊的类型处理器类(或别名)

#{age,javaType=int,jdbcType=NUMERIC,typeHandler=MyTypeHandler}

(3)确定小数点后保留的位数

#{height,javaType=double,jdbcType=NUMERIC,numericScale=2}

(4)mode 属性允许你指定 IN,OUT 或 INOUT 参数

二、Result Maps

1、一个 JavaBean 可以被映射到 ResultSet

2、类型别名

3、可以在 SELECT 语句中对列使用别名(这是一个 基本的 SQL 特性)来匹配标签

4、使用外部的 resultMap

5、高级结果映射

有待学习。。。。。

6、自动映射

(1)需要将 mapUnderscoreToCamelCase设置为true。

(2)id 和 userName列将被自动映射, hashed_password 列将根据配置映射

(3)三种自动映射等级:

NONE - 禁用自动映射。仅设置手动映射属性。PARTIAL - 将自动映射结果除了那些有内部定义内嵌结果映射的(joins).FULL - 自动映射所有。

7、缓存

转载于:https://my.oschina.net/u/2427561/blog/1857733

你可能感兴趣的文章
如何设计一个高可用的运营系统
查看>>
SQL数据库学习之路(一)
查看>>
Prometheus监控实践:Kubernetes集群监控
查看>>
创建表格存储(Table Store)结果表
查看>>
网站301跳转
查看>>
Android 权限管理
查看>>
Django配置MySQL数据库及采坑记
查看>>
关于DialogFragment全屏方案
查看>>
WPF中查看PDF文件
查看>>
旷视科技 CSG 算法负责人姚聪:深度学习时代的文字检测与识别技术 | AI 研习社 103 期大讲堂...
查看>>
构建docker镜像
查看>>
《未来简史》读后感
查看>>
Flink靠什么征服饿了么工程师?
查看>>
VB VBA VBS有什么区别?
查看>>
CSS3 box-shadow
查看>>
手机 APP 无法连接服务器,DNS被篡改被劫持?
查看>>
Jboot 2.0.1 发布,新增基于 Fescar 的分布式事务支持
查看>>
使用RNA-seq数据通过网络熵评估肿瘤内异质性
查看>>
Scrapy基础——Spider
查看>>
Airbnb 宣布放弃使用 React Native,回归使用原生技术
查看>>