mybatis 注解方式操作 sql

news2024/11/13 18:11:11

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

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.coloradmin.cn/o/740219.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python车牌识别

识别结果 蓝牌 绿牌 黄牌 环境 python:3.9\opencv:4.5.1 环境安装 pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple pip3 install hyperlpr -i https://pypi.tuna.tsinghua.edu.cn/simple 修改 cd /Library/Frameworks/Python.framework/Versi…

巧用word 邮件合并批量输出报告

在实际调查中,往往遇到很多统计信息要单独生成调查报告。word 邮件合并就能很好的帮助我们快速实现批量产出报告。 具体案例如下: 目前入河排污口调查正在如火如荼开展,我们排查收集了大量信息,整理为表格。 要将这些表格输出为…

算法训练营第三十四天||1005.K次取反后最大化的数组和 ● 134. 加油站● 135. 分发糖果

1005.K次取反后最大化的数组和 自己思路:自己想的就是把数组按从小到大排序,然后把前k小的数字都取反,然后相加起来,这个思路没有考虑到前k个小的数字中不全是负数的情况,比如这个数组全大于0的数,这种情况…

Redis熟悉到精通:开篇

文章目录 要点使用缓存技术的目的需要缓存机制的数据种类Redis学习资料 要点 掌握数据结构和缓存的基本使用方法; 掌握支撑Redis实现高可靠、高性能的技术; 高可靠 Redis之所以可以实现高可靠、高性能,和它的持久化机制、主从复制机制、哨兵、故障自动恢复、切片集…

模拟对讲机会被数字对讲机取代吗?

经常在网上看到有网友讨论,模拟对讲机是不是快被淘汰了,要被数字对讲机取代了。其实不管是模拟还是数字对讲机,都有其各自的优势,数字对讲要想全面取代模拟对讲,还是有些为时尚早。 传统的模拟对讲机主要是将语音、信…

用Python监控并分析城市空气质量

大家好,同为发展中国家,印度也受到空气质量问题的困扰,本文就以印度的城市为例进行数据分析。使用简单的Python代码,分析城市空气质量及其每天在全国范围内(即印度水平)的排名。 在开始之前,先介…

(转载)极限学习机(extreme learning machine, ELM)的回归拟合及分类(matlab实现)

单隐含层前馈神经网络(single-hidden layer feedforward neural network,SLFN)以其良好的学习能力在许多领域中得到了广泛的应用。然而,传统的学习算法(如BP算法等)固有的一些缺点,成为制约其发展的主要瓶颈。前馈神经网络大多采用梯度下降方法&#xff…

阿里云服务器安装mysql并用idea连接

文章目录 前言一.购置阿里云服务器——不定时二.在服务器安装mysql——用时5分钟三.打开服务器mysql的端口——用时2分钟1.找到安全组2.打开默认mysql的3306端口 三.打开idea连接数据库——5分钟四.总用时大约20分钟 前言 记录第一次通过idea连接安装在服务器上的数据库——排错…

在vite创建的vue3项目中加载Cesium世界街道地图的底图

在vite创建的vue3项目中加载Cesium世界街道地图的底图 使用vite创建vue3项目 npm create vitelatestcd到创建的项目文件夹中 npm install安装Cesium npm i cesium vite-plugin-cesium vite -D配置 vite.config.js文件 import { defineConfig } from vite import vue from vitej…

ETHERCAT转PROFINET协议网关连接ethercat网线接口定义

大家好,今天我要给大家介绍一款神奇的产品,YC-PN-ECT,它是一款 PROFINET 从站功能的通讯网关,可以将 PROFINET 网络和 ETHERCAT 网络连接起来,让不同厂家的 PLC 能够互相通信,真是太酷了! PEO…

T100新增栏位,配置ACC作业并提供开窗作业维护

需求分析:将xxxx作业中的一个界面新增一个栏位,并提供开窗功能进行资料的维护。 一、ACC自适应配置文档开发 1.1 azzi650 注册应用分类码【ACC】 新增一个资料 应用分类码【数字】说明 填写文字说明作业编号:这个时候是空的作业名称:也是空的1.2 azzi910 作业基本维护 这个…

做爬虫如何选择Python和C语言

目录 优劣势分析 Python 进行爬虫的优势: Python 进行爬虫的劣势: C进行爬虫的优势: C进行爬虫的劣势: 示例代码说明 Python 示例代码: C语言 示例代码: 怎么选择 优劣势分析 Python 进行爬虫的优…

Java设计模式之创建型-原型模式(UML类图+案例分析)

一、基础概念 通过复制已有对象作为原型,通过复制该原型来返回一个新对象,而不是新建对象,说白了就是不断复制相同的对象罢了。 二、UML类图 三、角色分析 角色描述抽象原型类规定了具体的原型对象必须实现的clone()方法具体原型类实现抽象…

倒计时1天!LeaTech全球CTO领导力峰会TVP四周年庆典即将开幕

引言 3 月 4 日,上海扬子江丽笙精选酒店,LeaTech 全球 CTO 领导力峰会暨腾讯云 TVP 四周年、CTO 训练营校友联合庆典即将开幕。本次 LeaTech 全球 CTO 领导力峰会以“寻光之旅”为主题,腾讯云 TVP 携手 51CTO,联合邀请业内资深领袖…

C# winform界面显示3D点云图像(halcon+VTK)

前一段时间研究了下halcon里的3d算法,想着把3d图像显示在C#编写的软件界面上,试了下halcon的控件,没成功。后来学习了一点VTK的知识,实现了3d图像的显示,可旋转,平移,缩放观察,当然也…

为什么国内做不出好的3A游戏?

个人觉得原因如下: 主要原因: 市场需求和消费观念:国内游戏市场对游戏类型和风格有着自身的特点和需求。一些热门游戏类型,如多人在线游戏、手机游戏等,相对于传统的3A游戏更受国内玩家欢迎。这可能导致国内游戏公司…

QInputDialog 不显示ok或cancel按钮bug

今天遇到一个奇怪问题,就是调用 QInputDialog::getText去获取输入文本,但是无法显示系统ok和cancel按钮,我记得之前是可以的,于是我回退上一个版本是正常,于是对比两个版本代码,发现,自己重写 Q…

【人工智能】贝叶斯网络、概率图模型、全局语义、因果链、朴素贝叶斯模型、枚举推理、变量消元

文章目录 频率学派 vs. 贝叶斯学派贝叶斯学派Probability(概率):独立性/条件独立性:Probability Theory(概率论):Graphical models (概率图模型)什么是图模型(Graphical Models&…

stm32(定时器和PWM知识点)

一、定时器介绍 软件定时 缺点:不精确、占用CPU资源 void Delay500ms() //11.0592MHz { unsigned char i, j, k; _nop_(); i 4; j 129; k 119; do { do { while (--k); } while (--j); } while (--i); }定时器工作原理: 使用精准的时基&#xff0c…

面试靠微服务扭转局面,知乎夸爆的微服务学习笔记到底有多牛?

我们现在的服务-微服务 我感觉微服务不是一个架构,而是像一个生态,应用与应用之间互相独立,却又彼此依赖。通过 DDD 的模型来设计一个地图,把合适的代码放到合适的地方去。实现微服务涉及的工具太多,以下我采用spring…