MyBatis注解Annotation介绍及Demo

简介:

MyBatis可以利用SQL映射文件来配置,也可以利用Annotation来设置。MyBatis提供的一些基本注解如下表所示。

注解

目标

相应的XML

描述

@CacheNamespace

<cache>  

为给定的命名空间(比如类)配置缓存。属性:

implemetation,eviction,

flushInterval , size  readWrite 

@CacheNamespaceRef

<cacheRef>

参照另外一个命名空间的缓存来使用。

属性:value,也就是类的完全限定名。

@ConstructorArgs

方法

<constructor>

收集一组结果传递给对象构造方法。

属性:value,是形式参数的数组

@Arg

方法

<arg>

<idArg>


单独的构造方法参数,是ConstructorArgs  集合的一部分。属性:id,column,javaTypetypeHandler

id属性是布尔值,来标识用于比较的属性,和<idArg>XML 元素相似

@TypeDiscriminator

方法

<discriminator>

一组实例值被用来决定结果映射的表

现。属性:Column, javaType ,  jdbcType typeHandlercases

cases属性就是实例的数组。

@Case

方法

<case>

单独实例的值和它对应的映射。属性:value  type results 

Results 属性是结果数组,因此这个注解和实际的ResultMap 很相似,由下面的  Results注解指定

@Results

方法

<resultMap>

结果映射的列表,包含了一个特别结果

列如何被映射到属性或字段的详情。

属性:value ,是Result注解的数组

@Result

方法

<result>

<id>

在列和属性或字段之间的单独结果映

射。属性:id column  property 

javaType jdbcType type Handler 

onemanyid 属性是一个布尔值,表

示了应该被用于比较的属性。one 属性是单独的联系,和 <association> 相似,而many 属性是对集合而言的,和

<collection>相似。

@One

方法

<association>  

复杂类型的单独属性值映射。属性:

select,已映射语句(也就是映射器方

法)的完全限定名,它可以加载合适类

型的实例。注意:联合映射在注解API

中是不支持的。

@Many

方法

<collection>

复杂类型的集合属性映射。属性:

select,是映射器方法的完全限定名,它可加载合适类型的一组实例。注意:联合映射在 Java注解中是不支持的。

@Options

方法

映射语句的属性

这个注解提供访问交换和配置选项的宽广范围,它们通常在映射语句上作为属性出现。而不是将每条语句注解变复杂,Options 注解提供连贯清晰的方式来访问它们。属性:useCache=true

flushCache=false

resultSetType=FORWARD_ONLY

statementType=PREPARED

fetchSize= -1timeout=-1 

useGeneratedKeys=false 

keyProperty=”id“

理解Java 注解是很重要的,因为没有办法来指定“null ”作为值。因此,一旦你使用了 Options注解,语句就受所有默认值的支配。要注意什么样的默认值来避免不期望的行为

@Insert

@Update

@Delete

方法

<insert>

<update>

<delete>

这些注解中的每一个代表了执行的真实 SQL它们每一个都使用字符串数组(或单独的字符串)。如果传递的是字符串数组,它们由每个分隔它们的单独空间串联起来。属性:value,这是字符串数组用来组成单独的SQL语句

@InsertProvider

@UpdateProvider

@DeleteProvider

@SelectProvider

方法

<insert>

<update>

<delete>

<select>

允许创建动态

SQL

这些可选的SQL注解允许你指定一个

类名和一个方法在执行时来返回运行

SQL基于执行的映射语句, MyBatis

会实例化这个类,然后执行由 provider

指定的方法这个方法可以选择性的接

受参数对象作为它的唯一参数,但是必

须只指定该参数或者没有参数。属性:

typemethodtype 属性是类的完全限定名。method  是该类中的那个方法名。

@Param

参数

N/A

当映射器方法需多个参数,这个注解可以被应用于映射器方法参数来给每个参数一个名字。否则,多参数将会以它们的顺序位置来被命名。比如

#{1}#{2} 等,这是默认的。

使用@Param(“person”)SQL中参数应该被命名为#{person}

这些注解都是运用到传统意义上映射器接口中的方法、类或者方法参数中的。

今天主要介绍两种使用注解的方式。

一种是直接在映射器接口中写SQL语句,一种是利用SqlBuilder来创建SQL再由映射器接口来调用

准备前提:

1,配置常规的MyBatis主配置文件,即各种数据源,别名等设置。在利用注解配置SQL的时候,一般不需要在主配置文件中配置Mapper,个别情况下需要配置。

2,数据库表Blog:

1
2
3
4
5
6
7
相关文章
|
9天前
|
Java 数据库连接 数据库
Springboot整合mybatis注解版(202005)
Springboot整合mybatis注解版(202005)
16 3
|
8月前
|
XML Java 数据库连接
Springboot 中同时使用mybatis注解和springbean-xml配置方式
因为自己新建了一个应用,为了开发的速度,直接选用了springboot,但后来发现大部分读库的代码和同事已有的代码重复, 索性直接拿过来用。但问题是我已有的代码是通过纯注解的方式使用mybatis,同事代码是spring+xml来使用mybatis,经过几天的探索,发现一种两种方式结合使用的方法。
65 0
|
SQL Java 数据库连接
MyBatis-10MyBatis注解方式之Provider注解
MyBatis-10MyBatis注解方式之Provider注解
282 0
|
XML Java 数据格式
【SpringBoot2 从0开始】底层注解 - @Conditional、@ImportResource
【SpringBoot2 从0开始】底层注解 - @Conditional、@ImportResource
【SpringBoot2 从0开始】底层注解 - @Conditional、@ImportResource
|
Java 数据库连接 数据库
Spring整合MyBatis---注解版
Spring整合MyBatis---注解版
140 0
Spring整合MyBatis---注解版
|
IDE Java 开发工具
Spring系列(十):@Autowired 和@Resource注解用法介绍
今天给大家分享Spring属性注入的注解@Autowired 和@Resource介,希望对大家能有所帮助!
Spring系列(十):@Autowired 和@Resource注解用法介绍
|
SQL 算法 数据库
Mybatis-Puls 常用注解
在使用MyBatis-Plus实现基本的CRUD时,我们并没有指定要操作的表,只是在Mapper接口继承BaseMapper时,设置了泛型User,而操作的表为user表。
|
SQL XML Java
SpringBoot 快速整合 Mybatis(去XML化+注解进阶)
Mybatis 去XML化+注解进阶 一. 基础注解 二. 映射注解 三. 高级注解 四. 详细教程 1. 引入依赖 2. 添加配置 3. 编写数据层代码 3.1 UserMapper 3.2 UserSqlProvider 3.3 实体类User 3.4 添加数据库记录 4. 编写控制层代码 5. 启动和测试 五. 源码和文档
213 0
SpringBoot 快速整合 Mybatis(去XML化+注解进阶)
|
XML Java 数据格式
SpringBoot配置类中的@Configuration注解和@bean注解
SpringBoot配置类中的@Configuration注解和@bean注解
1413 0
SpringBoot配置类中的@Configuration注解和@bean注解
|
开发框架 Java Spring
Spring中@Autowired注解、@Resource注解的区别
转自:http://blog.csdn.net/gst6062825/article/details/8765157
118 0