mybatis 注解方式操作 sql

前言:注解的方式在某些查询的时候还是比较方便的

mybatis注解配置

      • mapUnderscoreToCamelCase 配置
      • @Select 注解
      • @Insert 注解
      • @Delete 注解 和 @Update 注解
      • @Provider 注解

mapUnderscoreToCamelCase 配置

别名设置,mapUnderscoreToCamelCase 配置 配置可以将 带下划线 sql 字段转化为带驼峰结构的 java 属性设置

具体配置如下

//在mybatis-plus中
mybatis-plus:configuration:map-underscore-to-camel-case: true
//在mybatis中: 
mybatis:configuration:map-underscore-to-camel-case: true

此设置相当于 xml 中的 result sql 字段于 java 实体类属性的关系映射

也可以在注解中使用 result 进行关系映射,如果使用result 则放在xml 使用,注解可以使用一些短sql,简单查询,删除,短sql更新等操作不适合长sql操作

@Select 注解

@Select ({select id, role name roleName, enabled, 
create_by createBy, 
create time createTime ” 
” from sys_role ”, 
” where id= #{id } ” }) 
SysRole selectByid(Long id) ;
也可以写成下面这种形式。
@Select ({select id, role name roleName , enabled, 
create by createBy, 
create time createTime 
from sys_role 
where id = #{id } ” }) 
SysRole selectByid(Long id) ;

如果没有配置 别名,使用result

@Results({ 
@Result(property = ” i d ”, column = ” id”, id = true) , 
@Result(property = ” roleName ”, column =”role name ”), 
@Result(property =”enabled”, column = ” enabled”), 
@Result(property = ” createBy”, column = ” create_by”), 
@Result(property = ” createTime”, column = " create_time ”) 
} ) 
@Select (”s elect id,role name , enabled, create by , create time 
from sys_role where id = #{id )”) 
SysRole selectByid2(Long id);

@Insert 注解

不需要返回主键

@Insert ({”insert into sys role (id, role name, enabled, create by, create time )”, 
” values(#{id}, #{roleName}, #{enabled}, #{createBy } ,”, #{ createTime , jdbcType=TIMESTAMP })”}) 
int insert(SysRole sysRole);

返回自增主键

@Insert ({”insert into sys_role (role_name, enabled, create_by, create_ time )”, 
” values(#{roleName}, #{enabled}, #{createBy },”, #{ createTime, jdbcType=TIMESTAMP })”}) 
@Options(useGeneratedKeys =true, keyProperty =”id”) 
int insert2(SysRole sysRole);

和上面的 insert 方法相比, insert2 方法中的 SQL 中少了 id 列,注解多了
@Options ,我们在这个注解中设置了 useGeneratedKeys keyProperty 属性,用法和
XML 相同, 当需要配置多个列时,这个注解也提供了 ke yColumn 属性,可以像 ML 那样
配置使用。

@Delete 注解 和 @Update 注解

@Update {{ ” update sys role ”, 
}) 
”set role name = #{roleName },”, 
” enabled = #{enabled },”, 
” create by = #{createBy },”, 
” create time = #{createTime, jdbcType=TIMESTAMP }”, 
” where id = #{id }” 
int updateByid{SysRole sysRole); @Delete {” delete from sys role where id = #{id }”) 
int deleteByid{Long id);

@Provider 注解

除了上面 种注解可以使用简单的 SQL 外, MyBatis 还提供了 Provider 注解,分别
@SelectProvider 、@ InsertProvider 、@ Update Provider 和@ DeleteProvider
们同样可以实现查询、插入、更新、删除操作。
下面通过@ SelectProvider 用法来了解 Provider 注解方式的基本用法

public class PrivilegeProv der { public String selectByid(final Long id) { return new SQL{) { SELECT (”id, privilege name, privilege url”); FROM (”sys privilege”); WHERE (id= #{id }”); } . toString () ; 
}
public String selectByid(final Long id) { 
returnselect id, privilege name, privilege url ”+ 
” from sys_privilege where id = #{id }”;
}

本文大量引用这本书的实例,有问题可以阅读原文
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18697.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AtcoderABC309场

A - NineA - Nine 题目大意 判断两个数是否相邻且水平排列&#xff0c;即它们在同一行并且相邻。可以直接打印或者找规律 思路分析 可以直接打印或者找规律 时间复杂度 O&#xff08;1&#xff09; 代码 #include<bits/stdc.h> using namespace std; int main(){i…

LeetCode 打卡day59--单调栈

一个人的朝圣 — LeetCode打卡第59-60天 知识总结 Leetcode 739. 每日温度题目说明代码说明 Leetcode 496. 下一个更大元素 I题目说明代码说明 Leetcode 84. 柱状图中最大的矩形题目说明代码说明 知识总结 今天做了单调栈的三道题 总结了一个模版套路: 寻找下一个更大的数 f…

冯诺依曼体系结构理解

冯诺依曼体系结构理解 1.介绍2.特点介绍3.举例说明4.注意 1.介绍 冯诺依曼体系结构&#xff08;Von Neumann Architecture&#xff09;是一种计算机体系结构&#xff0c;以数学家冯诺依曼&#xff08;John von Neumann&#xff09;的名字命名。它是一种经典的计算机设计范式&a…

使用Python爬虫和数据可视化,揭示人口大国历年人数的变迁

前言 人口大国通常在全球人口排名中位居前列&#xff0c;其人口数量远远超过其他国家。而印度和中国这两个国家的人口数量均已经超过14亿&#xff0c;而当前全球的人口总数也不过刚刚突破80亿而已&#xff0c;妥妥的天花板级别存在。或许是中国和印度在人口方面的表现太过“耀…

ContOS7 Oracle11g 安装配置

配置yum源 cd /etc mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak mkdir yum.repos.d wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 清理缓存 yum clean all # 建缓存 yum makecache #安装epel…

关于swagger突然跳转登录页面,swagger打开跳转login页面BUG

今天建了一个初始项目&#xff0c;引入swagger之后&#xff0c;启动调用&#xff0c;却总跳转到一个登录页面&#xff0c;手足无措 启动项目后&#xff0c;打开swagger进行测试&#xff0c;但是跳转到下图页面 最后原因是导入了security的包&#xff0c;导致权限安全拦截 注释…

短视频矩阵管理系统源码开发:视频批量剪辑,分发功能开发示例

短视频矩阵管理系统开发&#xff0c;首先对服务器要求&#xff1a; 源码所需服务器配置 1、规格&#xff1a;最低8核16G 2、硬盘&#xff1a;系统盘40-100G&#xff0c;数据盘不低于100G 3、带宽&#xff1a;10M 4、系统&#xff1a;CentOS7(务必选择7.*) 部署过程中&…

蓄电池风险监控,制造业必备!

在大型加工企业中&#xff0c;蓄电池被广泛应用于各种设备和系统&#xff0c;例如备用电源、起重设备、紧急照明等。蓄电池的可靠性和性能对于企业的正常运行至关重要。 因此&#xff0c;为了确保蓄电池的安全运行和有效管理&#xff0c;引入蓄电池监控系统成为必不可少的环节。…

100天精通Golang(基础入门篇)——第15天:深入解析Go语言中函数的应用:从基础到进阶,助您精通函数编程!(进阶)

&#x1f337; 博主 libin9iOak带您 Go to Golang Language.✨ &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &#x1f30a; 《I…

SQL事务与隔离

事务 事务的定义 事务是完成一个任务的多条语句,这些语句中,只要有一条语句失败,那么整个事务就会失败,即使之前的语句已经执行完毕也会被撤回 举个例子: 我去银行给王哥转钱,这个转钱呢分两个步骤,第一步先把我的钱拿出来,第二步把钱给王哥,那万一刚把我钱拿出来但是没到王…

Swift与OC的混编

一些场面话 在一位前辈的博客里看到了关于iOS开发的各种语言的混编&#xff0c;浅浅学习一下怎么使用。不得不说语言混编的开发者是真的&#x1f42e;&#x1f37a; Swift中用OC混编 新建一个Swift文件 创建一个OC的类 选择language为OC 继续往下走&#xff0c;会跳出这个界…

css基础知识二十:说说对Css预编语言的理解?有哪些区别?

一、是什么 Css 作为一门标记性语言&#xff0c;语法相对简单&#xff0c;对使用者的要求较低&#xff0c;但同时也带来一些问题 需要书写大量看似没有逻辑的代码&#xff0c;不方便维护及扩展&#xff0c;不利于复用&#xff0c;尤其对于非前端开发工程师来讲&#xff0c;往…