Mybatis之使用注解开发CRUD

2023-05-16

上一篇演示了如何使用XML来操作Mybatis实现CRUD,但是大量的XML配置文件的编写是非常烦人的。因此

Mybatis也提供了基于注解的配置方式,下面我们来演示一下使用接口加注解来实现CRUD的的例子。

首先是创建一个接口。

package com.bird.mybatis.bean;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

public interface UserMapper {
	@Insert("insert into users(name, age) values(#{name}, #{age})")
	public int add(Users user);
	
	@Delete("delete from users where id = #{id}")
	public int deleteById(int id);
	
	@Update("update users set name = #{name}, age = #{age} where id = #{id}")
	public int update(Users user);
	
	@Select("select * from users where id = #{id}")
	public Users getUserById(int id);
	
	@Select("select * from users")
	public List<Users> getAllUsers();
}

然后一定不要忘了在conf.xml配置文件中,注册这个类

<mappers>
		<mapper resource="com/bird/mybatis/bean/userMapper.xml" />
		<mapper class="com.bird.mybatis.bean.UserMapper"/>
	</mappers>

下面就是使用这个类了

@Test
	public void testAdd2() {
		SqlSession openSession = factory.openSession();
		UserMapper mapper = openSession.getMapper(UserMapper.class);
		mapper.add(new Users(-1,"娃娃",99));
		openSession.commit();
		openSession.close();
	}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mybatis之使用注解开发CRUD 的相关文章

  • 无法删除错误 CRUD API(NodeJS、MongoDB、Express)

    我在尝试从我正在处理的 API 项目中创建的 mongo 数据库中删除字段时遇到错误 我对 RESTful API 以及 MongoDB 和 Express 都还很陌生 我按照 YouTube 上的教程进行操作 该教程解释了制作这样一个 A
  • 多租户应用程序中的 MyBatis Spring

    您好 在多租户中使用 MyBatis spring 时需要一些帮助 应用 是否可以 特别是因为我不知道如何 可以使用 sqlSessionFactory 配置 MapperScannerConfigurer 运行 这是另一种使用插件 也称为
  • spring hibernate没有获取参数的值

    我尝试使用以下命令进行 API 调用post通过邮递员的方法到我的 Spring Boot 应用程序 这是输入 username name password 1234 age 12 salary 5000 role 1 这是控制器中的代码
  • Elasticsearch CRUD 需要刷新吗?

    我需要将 RDBS 数据与 Elasticsearch 同步 实现此目的的常见方法是在 RDBS 上应用更改 然后使用消息队列 或用于 ETL 的表 在 ES 上应用相同的更改 同一个 Elasticsearch 博客建议从队列中弹出 10
  • MyBatis -Where 子句中的嵌套条件

    我在 MyBatis v3 映射器 xml 中动态生成 where 子句 不过加括号确实很麻烦 有没有更简单的方法来处理这个问题而不使用 if 语句
  • Mybatis Plus 条件构造器的简单介绍 以及IService 的简单使用

    文章目录 Mybatis Plus 条件构造器 LambdaWrapper 自定义SQL Service接口 Mybatis Plus 条件构造器 简单案例演示 特殊案例更新
  • Mybatis插件介绍与基本使用

    文章目录 Mybatis插件 四大接口介绍 所需要的注解 Interceptor接口介绍 Executor接口 Executor接口介绍 Executor 接口的一些关键方法
  • MyBatis 不支持布尔映射

    我只是想用 Mybatis 映射布尔值 但遇到问题 首先我给大家展示一下涉及到的部分 XML File
  • Rails - 更新单个属性:与自定义操作或带有隐藏字段的表单链接?

    假设我有一个 User 模型 其中 facebook uid 字段对应于用户的 facebook id 我想允许用户取消其 Facebook 帐户的链接 这样做 我需要将此属性设置为零 我目前看到有两种方法可以做到这一点 第一种方法 创建自
  • Blazor 角色管理通过 UI 添加角色(Crud)

    我对 blazor 还很陌生 并且对向数据库添加角色感到有些疑问 我已经实施了身份角色管理并拥有一个工作系统 但现在我想通过 GUI 添加新角色 而不是编辑数据库 我有一个名为 RolesOverview razor 的 razor 页面
  • 明显的死锁 为未分配的挂起任务创建紧急线程

    我正在将 mysql 与 mybatis 一起使用 并且在我们的实时服务器上遇到此错误 com mchange v2 async ThreadPoolAsynchronousRunner DeadlockDetector 6538f8f2
  • 使用 mybatis 进行 spring boot 的 spring 模拟 mvc 测试需要属性“sqlSessionFactory”或“sqlSessionTemplate”

    演示项目位置 https github com soliders mockmvctest ofspringboot withmybatismapper https github com soliders mockmvctest ofspri
  • 是否有类似于 JTable 的预构建 Angular 组件?

    AngularJS 看起来是一个很棒的系统 但我对企业风格 CRUD 的预构建组件很好奇 JQueryUI有优秀的JTable 还有datatable和jqGrid 基本上 我想知道是否有一个自动表 具有服务器端 CRUD REST 后端支
  • Maven读取属性文件中的环境变量

    如何读取属性文件中的系统环境变量 我正在使用 MyBatis maven 插件进行数据库迁移 MyBatis 根据环境使用属性文件 我正在尝试读取属性文件中的环境变量 例如 开发 property username env username
  • 离线同步和事件源

    我们的应用程序中基于 CRUD 的部分需要 离线双向 双向 同步 能够修改数据直到准备好然后 发布 审核日志 我正在寻找事件溯源 或 命令模式 来完成这些项目 我觉得用这个来解决 2 3 很舒服 但对于第一个项目同步还不清楚 如果每个命令都
  • 从数据库中删除内容,安全预防措施

    UPDATE 我像 Berdir 告诉我的那样添加了 CSRF 保护 并在下面的链接的帮助下使我的应用程序再次运行 但是 我不太确定我现在做了什么 D 这将如何使我的应用程序更安全 我特别担心的是 我现在在我的 ajax 代码中获取了一个
  • Java MyBatis 存储过程调用带 OUT 参数

    第一个问题 我试图返回一个 OUT 参数 而不是带注释的结果集 首先 这可能吗 如果是的话 人们会怎样做呢 MyBatis 3 0 6 数据库 SQL Server 2008 以下是我在 UserDAO 中调用方法的语法示例 Select
  • Mybatis 3.0.5 嵌套集合映射示例

    我正在研究 MyBatis 3 0 5 的映射功能 运行嵌入式模式的数据库是H2 1 3 160 在用户手册的帮助下 我让简单的部分工作起来 但我很难绘制出Set使用一个HashMap作为后备存储 以下是自定义集合的 Java 代码 该集合
  • 抽象 CRUD 控制器是个好主意吗?

    我们正在使用 ASP NET MVC 开发一个相当大的应用程序 一开始我们发现拥有一个具有常见 CRUD 操作 新建 保存 删除 以及默认列表操作的抽象基本控制器可能很有用 在我们的例子中 我们有 20 多个实体通过这种控制器进行管理 这有
  • Postgis - 如何通过 JDBC 使用数据类型“地理”

    从事一个网络项目 该项目使用postgresql 9 3 postgis 2 1 有一个类型的列geography在表中 它只存储一个point 现在我需要通过 JDBC 使用 Java 对象插入 选择类型 看完之后postgis手册 没有

随机推荐

  • 树莓派开机自动发送邮件脚本

    开机联网后自动获取本机内网IP xff0c 并通过邮件或者server酱发送自己的内网IP span class token keyword import span smtplib span class token keyword from
  • C++ STL Map按照value排序

    xff08 记录一下 xff09 STL的map底层实现一般是红黑树 xff0c 会自动按照key排序 xff0c 按照value排序好像也没有更好的方法了 xff0c 只能将map转成vector lt pair gt 再进行排序了 sp
  • typescript

    TypeScript TypeScript 是一种给 JavaScript 添加特性的语言扩展 支持es6 xff0c 是微软提出的一种编程语言 TypeScript 设计目标是开发大型应用 xff0c 它可以编译成纯 JavaScript
  • 串口打印中途无log出来,显示console:$字样,一段时间后才再显示

    调试时 xff0c 我们在外接串口打印log时 xff0c 发现lk打印完成后跳转到kernel阶段 xff0c 显示console 字样 xff0c 过一段时间后才重新开始打印log xff0c 这样导致我们抓取的log不全 xff0c
  • 【Hexo】域名绑定篇

    关于Hexo的一切 我的Hexo专栏 零 前言 继上篇 xff0c 本篇主要讨论购买域名以及如何绑定并进行解析 一 购买 我这里只推荐两个平台 xff1a 阿里云官网和 腾讯云官网 xff0c 选择你中意的即可 我买的是一个很辣鸡的域名ww
  • 配置一个好看的PowerShell

    工作生活中用到 PowerShell 的时刻其实有很多 xff0c 但是那深蓝色的背景实在让人想吐槽几句 今天我们就来美化一下它 xff0c 几十种花里胡哨的主题任你选择 用到的是oh my posh xff0c 跟oh my zsh类似
  • scikit-learn介绍-非常流行的python机器学习库

    scikit learn是一个建立在Scipy基础上的用于机器学习的Python模块 在不同的应用领域中 xff0c 已经大展出为数众多的基于Scipy的工具包 xff0c 他们统称为Scikits 而在所有的分支版本中 xff0c sci
  • redis

    redis Redis 是一个Key Value 数据库 xff0c 主要用于存储缓存 redis支持的数据类型 xff1a String字符串 xff1a 设置key值 xff1a set key value string类型是二进制安全
  • 多生产者——多消费者问题

    问题背景 假设有四个人 xff1a 父亲 母亲 女儿 儿子 xff0c 和一个空盘子 xff0c 里面最多放一个水果 父亲每次向盘子中放一个苹果 xff0c 女儿只会吃苹果 母亲每次向盘子中放一个橘子 xff0c 儿子只会吃橘子 这个问题可
  • Android-MVVM-Databinding的原理、用法与封装

    前言 说起 DataBinding ViewBinding 的历史 xff0c 可谓是一波三折 xff0c 甚至是比 Dagger Hilt 还要传奇 说起依赖注入框架 Dagger2 Hilt xff0c 也是比较传奇 xff0c 刚出来
  • day03 Python基础

    day03 Python基础 版权声明 xff1a 本博客转载自路飞学城Python全栈开发培训课件 xff0c 仅用于学习之用 xff0c 严禁用于商业用途 xff0c 未经授权 xff0c 严禁转载 欢迎访问路飞学城官网 xff1a h
  • 最新Spire.pdf Spire.Doc Spire.Xls等无水印使用

    Aspose与Spire功能都很强大 xff0c 为什么要选择Spire xff0c Spire支持WPF组件 xff0c Aspose默认没有 新建 net6控制台程序 xff0c 用NuGet包添加Spire PDF引用 添加代码 us
  • 使用Pyinstaller发布带界面的程序(解决找不到文件问题)

    Pyinstaller Pyinstaller可以用来打包python代码 xff0c 生成可执行文件 xff08 主流平台都可以 xff09 xff0c 介绍就不说了 xff0c 可以百度或者去官网看看 xff1a https www p
  • 动态分配内存——new/delete

    动态分配内存 1 使用new分配内存2 使用delete释放内存3 例子 xff1a 数组编译时分配内存和运行时分配内存4 动态数组补充 xff1a 程序的内存分配 1 使用new分配内存 使用格式 xff1a span class tok
  • Spring学习(一) Spring环境配置

    工具原料 xff1a JDK Eclipse IDEA 开始学Spring xff0c 应该已经安好java环境了 xff0c 这里我就不赘述了 xff0c 直接开始开始下一步的教程 配置spring环境需要导入spring相关的jar包
  • vue-lottie动画效果(进阶篇)

    vue lottie动画效果 以下是个人见解部分 个人见解 xff1a 优点 xff1a 简单高效 xff0c 动画文件小 xff0c 丝滑流畅 xff0c 动画可控性强 缺点 xff1a 依赖包非常重 xff0c 对动画要求不高的项目不太
  • Ubuntu18.04设置开机自启动自己的程序、脚本

    Ubuntu18 04设置开机自启动自己的程序 脚本 本文使用的机器是win10 43 Ubuntu18 04双系统 xff0c 虚拟机上的Ubuntu18 04操作一样 xff0c 均可参考此文 参考链接 xff0c 言简意赅 xff0c
  • 【Qt】【QDebug】【日志】实用的Qt日志打印-打印时间-线程-数据等信息

    Qt QDebug 日志 实用的Qt日志打印 打印时间 线程 数据等信息 在开发audio和video相关软件时 xff0c 收发速率很关键 xff0c 我们需要打印时间和线程等相关信息等日志 include lt QDebug gt 获取
  • DNS(域名解析协议)详解

    DNS协议 我们之前已经了解过ARP协议 如果说ARP协议是用来将IP地址转换为MAC地址 xff0c 那么DNS协议则是用来将域名转换为IP地址 xff08 也可以将IP地址转换为相应的域名地址 xff09 我们都知道 xff0c TCP
  • Mybatis之使用注解开发CRUD

    上一篇演示了如何使用XML来操作Mybatis实现CRUD xff0c 但是大量的XML配置文件的编写是非常烦人的 因此 Mybatis也提供了基于注解的配置方式 xff0c 下面我们来演示一下使用接口加注解来实现CRUD的的例子 首先是创