mySql :
CREATE TABLE `test` ( `t_id` int(11) NOT NULL AUTO_INCREMENT, `t_name` varchar(200) NOT NULL, `create_date` datetime NOT NULL, `update_date` datetime DEFAULT NULL, PRIMARY KEY (`t_id`) )
Model:
//@Data 在lombok包下 @Data public class Test implements Serializable { private static final long serialVersionUID = 1L; private Integer tId; private String tName; private Date createDate; @DateTimeFormat(pattern="yyyy-MM-dd") //用户将表单传来的日期进行格式化 private Date updateDate; }
Mapper:
@Mapper public interface TestMapper { @Select("<script>" + "select t.t_id,t.t_name from test t where 1=1" + "<if test=\"tId != null and tId != '' \"> and t.t_id=#{tId}</if>" + "</script>") @Results({ @Result(column = "t_id", property = "tId"), @Result(column = "t_name", property = "tName") }) public List<Test> query(@Param("tId") String tId) //t_id需要是自增长的 @Insert("<script>INSERT INTO test (t_name, create_date, update_date) VALUES" + "(#{test.tName},now(),now())" + "</script>") @SelectKey(before = false, keyProperty = "test.tId", resultType = Integer.class, statementType = StatementType.STATEMENT, statement = "SELECT LAST_INSERT_ID() AS t_id") public int insert(@Param("test") Test test); @Update("<script>UPDATE test set update_date = " +"<choose> <when test=\"test.updateDate != null \"> #{test.updateDate}</when>" +"<otherwise> now()</otherwise>" + "</choose>" + " where t_id=#{test.tId}</script>") public int update(@Param("test") Test test); @Delete("delete FROM test where t_id = #{tId}") public int delete(@Param("tId") String tId); //批量插入,不支持批量更新,# 与 *的区别,#号是以?占位,*直接替换成相应的内容了 @Insert("<script>" + "insert into test (`t_name`, `create_date`, `update_date`) VALUES " + "<foreach collection =\"testList\" item=\"testModel\" index= \"index\" separator =\",\"> " + "(<![CDATA[ #{testModel.tName},now(),now()]])>" + "</foreach > " + "</script>") @SelectKey(before = false, keyProperty = "tId", resultType = int.class, statementType = StatementType.STATEMENT, statement = "SELECT LAST_INSERT_ID() AS t_id") public int insertList(@Param("testList") List<Test> testList); }
如果通过<script> 这种形式感觉不太清晰,完全可以使用@SelectProvider,@InsertProvider,@UpdateProvider ,@DeleteProvider
provider只是负责返回SQL,但是要注意@Param的用法。
相关推荐
本项目基于一系列技术栈,包括Spring Boot、MyBatis Plus、Gradle、MySQL和Swagger,实现了一个基础的增删改查(CRUD)功能,并提供了树形查询的能力。下面将详细介绍这些技术及其在项目中的应用。 **1. Spring ...
MyBatis 的增删改查功能非常强大且灵活,通过 XML 配置或注解方式,可以轻松地将 Java 对象与 SQL 语句关联起来,极大地提高了开发效率。在实际项目中,结合 Spring 框架,可以实现更高效、更完善的事务管理和对象...
本教程将深入探讨如何利用SpringBoot和Mybatis进行数据库的增删改查操作,以实现高效的数据管理。 首先,SpringBoot是由Pivotal团队提供的一个开源框架,它简化了Spring应用的初始搭建以及开发过程。SpringBoot通过...
在本项目中,我们利用了SpringBoot、MyBatis、MySQL、LayUI和Thymeleaf这五种核心技术,构建了一个完整的Web应用程序,实现了学生信息管理系统的增删改查功能。下面将对这些技术及其在项目中的应用进行详细解释。 *...
在本项目中,我们主要探讨的是如何利用SpringMVC和MyBatis这两个流行的技术框架来实现Web应用中的基本功能:增删改查以及文件的上传和下载。这些功能是大多数企业级应用的基础,也是开发者必须掌握的核心技能。下面...
这个“mybatis增删改查demo”应该是一个包含了MyBatis基本操作的实例项目,用于帮助开发者快速理解和学习如何在实际开发中运用MyBatis。 首先,让我们深入了解MyBatis的核心概念: 1. **配置文件**:MyBatis的配置...
本教程将围绕“ssm实现登录和用户增删改查的demo”进行详细讲解。 首先,我们来看Spring框架。Spring作为核心容器,管理着应用对象的生命周期和依赖注入。在登录和用户管理的场景中,Spring可以帮助我们创建和配置...
在JavaWeb开发中,"黑马旧版JavaWeb品牌数据增删改查"是一个常见的实践环节,它涵盖了数据库操作的核心概念和技巧。这个主题主要是教授如何使用Java编程语言和相关的Web框架来实现对品牌数据的添加(Add)、删除...
在这个"ssm+bootstrap_ssm增删改查"项目中,开发者很可能会利用Bootstrap的表格组件展示数据,用其表单组件进行用户输入,通过Ajax异步请求与后端SSM框架进行交互,实现无刷新的增删改查功能。例如,添加新数据时,...
本项目是关于如何使用纯配置方式在SSM框架下实现单个模块的增删改查功能。 1. **Spring框架**:Spring是一个全面的Java企业级应用开发框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,使得应用程序更加...
这个"SSM框架员工增删改查.rar"压缩包文件显然是一个教学或实战项目,涵盖了如何在SSM框架下实现员工管理系统的数据操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Select)功能。以下是关于SSM框架...
它在Mybatis的基础上进行了轻量级封装,使得开发人员无需编写大量重复的SQL代码,极大地提高了开发效率。下面我们将详细介绍Mybatis Plus的基本使用方法,包括其核心特性、快速入门以及如何进行CRUD操作。 1. **...
在这个“ibatis+mysql5.1的增删改查”实例中,我们首先需要在MySQL中创建一个名为`selected`的数据库和一个名为`contact`的表。这个表包含四个字段:`contactid`作为主键,`firstname`,`lastname`,和`email`。通常...
mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之...
第二节:增删改查 * 新增测试 * 修改测试 * 查询测试 * 删除测试 第三节:运行原理 * EmployeeMapper 的本质 * MapperProxy 中 * SqlSessionFacotry 中 第四节:条件构造器 * EntityWrapper 简介 * 测试查询 * ...
例如,增(INSERT)、删(DELETE)、改(UPDATE)和查(SELECT)操作。 1. **创建(CREATE)**: MyBatis提供插入数据的功能,可以通过定义一个INSERT语句,设置参数占位符,然后在Java代码中传递参数。例如,在...
- **SqlSession**:执行SQL操作的接口,提供了增删改查等方法,每次操作后需调用close()关闭会话。 - **Mapper**:接口,定义了SQL语句的方法,MyBatis会自动生成实现类,方便调用。 - **Executor**:执行器,...
1. **自动CRUD操作**:MyBatis-Plus提供了丰富的API,可以实现对数据库的基本增删改查操作,无需手动编写SQL。例如,insert、insertBatch、deleteById、updateById、selectById等方法,极大地提高了开发效率。 2. *...
在实际项目中,开发者可以先利用Mybatis的SQL映射功能进行复杂查询和数据操作,再借助Mybatis Plus的自动化功能处理常见的增删改查任务,从而达到提高开发效率和代码可维护性的目标。了解并熟练掌握这两个框架,对于...
接着,文档描述了如何进行CRUD操作,即增删改查。这是持久层框架的核心功能,myBatis通过定义XML文件或使用注解的方式,来实现对数据库的操作。在使用DAO(数据访问对象)时,myBatis提供了一系列的API来执行SQL语句...