`

mybatis 注解形式进行增删改查

阅读更多

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的用法。

分享到:
评论

相关推荐

    mybatis实现增删改查

    MyBatis 的增删改查功能非常强大且灵活,通过 XML 配置或注解方式,可以轻松地将 Java 对象与 SQL 语句关联起来,极大地提高了开发效率。在实际项目中,结合 Spring 框架,可以实现更高效、更完善的事务管理和对象...

    SpringBoot+Mybatis对数据库的增删改查

    本教程将深入探讨如何利用SpringBoot和Mybatis进行数据库的增删改查操作,以实现高效的数据管理。 首先,SpringBoot是由Pivotal团队提供的一个开源框架,它简化了Spring应用的初始搭建以及开发过程。SpringBoot通过...

    springboot+mybatis+mysql+layUI+thymeleaf实现增删改查

    在本项目中,我们利用了SpringBoot、MyBatis、MySQL、LayUI和Thymeleaf这五种核心技术,构建了一个完整的Web应用程序,实现了学生信息管理系统的增删改查功能。下面将对这些技术及其在项目中的应用进行详细解释。 *...

    springMVC MyBatis 增删改查+文件上传下载 -mysql

    在本项目中,我们主要探讨的是如何利用SpringMVC和MyBatis这两个流行的技术框架来实现Web应用中的基本功能:增删改查以及文件的上传和下载。这些功能是大多数企业级应用的基础,也是开发者必须掌握的核心技能。下面...

    mybatis增删改查demo

    这个“mybatis增删改查demo”应该是一个包含了MyBatis基本操作的实例项目,用于帮助开发者快速理解和学习如何在实际开发中运用MyBatis。 首先,让我们深入了解MyBatis的核心概念: 1. **配置文件**:MyBatis的配置...

    ssm实现登录和用户增删改查的demo

    本教程将围绕“ssm实现登录和用户增删改查的demo”进行详细讲解。 首先,我们来看Spring框架。Spring作为核心容器,管理着应用对象的生命周期和依赖注入。在登录和用户管理的场景中,Spring可以帮助我们创建和配置...

    黑马旧版JavaWeb品牌数据增删改查

    在JavaWeb开发中,"黑马旧版JavaWeb品牌数据增删改查"是一个常见的实践环节,它涵盖了数据库操作的核心概念和技巧。这个主题主要是教授如何使用Java编程语言和相关的Web框架来实现对品牌数据的添加(Add)、删除...

    ssm.zip_ssm+bootstrap_ssm增删改查

    在这个"ssm+bootstrap_ssm增删改查"项目中,开发者很可能会利用Bootstrap的表格组件展示数据,用其表单组件进行用户输入,通过Ajax异步请求与后端SSM框架进行交互,实现无刷新的增删改查功能。例如,添加新数据时,...

    ssm使用纯配置形式完成单个模块增删改查

    本项目是关于如何使用纯配置方式在SSM框架下实现单个模块的增删改查功能。 1. **Spring框架**:Spring是一个全面的Java企业级应用开发框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,使得应用程序更加...

    SSM框架员工增删改查.rar

    这个"SSM框架员工增删改查.rar"压缩包文件显然是一个教学或实战项目,涵盖了如何在SSM框架下实现员工管理系统的数据操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Select)功能。以下是关于SSM框架...

    Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)

    它在Mybatis的基础上进行了轻量级封装,使得开发人员无需编写大量重复的SQL代码,极大地提高了开发效率。下面我们将详细介绍Mybatis Plus的基本使用方法,包括其核心特性、快速入门以及如何进行CRUD操作。 1. **...

    ibatis+mysql5.1的增删改查

    在这个“ibatis+mysql5.1的增删改查”实例中,我们首先需要在MySQL中创建一个名为`selected`的数据库和一个名为`contact`的表。这个表包含四个字段:`contactid`作为主键,`firstname`,`lastname`,和`email`。通常...

    MyBatis-Plus 学习笔记.pdf

    第二节:增删改查 * 新增测试 * 修改测试 * 查询测试 * 删除测试 第三节:运行原理 * EmployeeMapper 的本质 * MapperProxy 中 * SqlSessionFacotry 中 第四节:条件构造器 * EntityWrapper 简介 * 测试查询 * ...

    springmybatis

    mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之...

    MyBatisDemo

    例如,增(INSERT)、删(DELETE)、改(UPDATE)和查(SELECT)操作。 1. **创建(CREATE)**: MyBatis提供插入数据的功能,可以通过定义一个INSERT语句,设置参数占位符,然后在Java代码中传递参数。例如,在...

    mybatis源码分析视频

    - **SqlSession**:执行SQL操作的接口,提供了增删改查等方法,每次操作后需调用close()关闭会话。 - **Mapper**:接口,定义了SQL语句的方法,MyBatis会自动生成实现类,方便调用。 - **Executor**:执行器,...

    mybatis.plus官方中文文档

    1. **自动CRUD操作**:MyBatis-Plus提供了丰富的API,可以实现对数据库的基本增删改查操作,无需手动编写SQL。例如,insert、insertBatch、deleteById、updateById、selectById等方法,极大地提高了开发效率。 2. *...

    Mybatis Mybatis plus 官网文档PDF

    在实际项目中,开发者可以先利用Mybatis的SQL映射功能进行复杂查询和数据操作,再借助Mybatis Plus的自动化功能处理常见的增删改查任务,从而达到提高开发效率和代码可维护性的目标。了解并熟练掌握这两个框架,对于...

    myBatis02.pdf

    接着,文档描述了如何进行CRUD操作,即增删改查。这是持久层框架的核心功能,myBatis通过定义XML文件或使用注解的方式,来实现对数据库的操作。在使用DAO(数据访问对象)时,myBatis提供了一系列的API来执行SQL语句...

Global site tag (gtag.js) - Google Analytics