使用Mybatis的时候需要写mapper.xml来映射实体类和数据表字段
mapper.xml也是官方推荐的用法,现在我们用带注解的class来实现mapper.xml
代码如下:
顺便配置了一下CRUD的缓存,如果不用缓存,把@CacheNamespace和@Options去掉就行,他们配置的是缓存类型和缓存时间
public class User { private String userName; private String password; private Boolean enable; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Boolean getEnable() { return enable; } public void setEnable(Boolean enable) { this.enable = enable; } }
import java.util.List; import org.apache.ibatis.annotations.CacheNamespace; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Options; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; @CacheNamespace public interface UserMapper { @Options(flushCache = true, timeout = 20000) @Insert("insert into demo.user(user_name, password, enable) values(#{userName}, #{password}, #{enable})") public void insert(User object); @Options(flushCache = true, timeout = 20000) @Update("update demo.user set password=#{password}, enable=#{enable} where user_name=#{userName}") public void update(User object); @Options(useCache = true, flushCache = false, timeout = 10000) @Select("select * from demo.user where user_name=#{userName}") @Results(value = { @Result(id = true, property = "userName", column = "user_name"), @Result(property = "password", column = "password"), @Result(property = "enable", column = "enable"), }) public List<User> query(@Param("userName") String userName); @Options(flushCache = true, timeout = 20000) @Delete("delete from demo.user where user_name=#{userName}") public void delete(@Param("userName") String userName); }
使用:
@Autowired private SqlSessionFactory sqlSessionFactory; @Test public void testInsert() { User user = new User("username", "password", true); sqlSessionFactory.openSession().getMapper(UserMapper.class).insert(user); }
注意,如果需要映射一对多的关系,还是老老实实用xml,毕竟mybatis的注解还不完善,简单的实体用class风格还是不错的,挺方便,而且如果需要mapper.xml和class风格的mapper混用,也是可以滴(在class中使用@ResultMap和mapper.xml进行合体)
以上
相关推荐
IntellijIDEA 中 MybatisMapper 自动注入警告的 6 种解决方案 IntellijIDEA 中 MybatisMapper 自动注入警告的 6 种解决方案是开发者们经常遇到的问题。本文将分析原因,并列出解决该警告的几种方案。 方案 1:为 @...
Mybatis Mapper是一个强大的工具,它在Java开发中用于简化数据访问层(DAO)的实现,尤其是在使用Mybatis作为持久层框架的时候。Mybatis Mapper的主要目标是让我们能够仅定义接口,而无需手动编写接口的实现类,这极...
"Spring+mvc+mybatis Mapper xml自动加载"这个主题聚焦于如何在开发过程中优化配置,使得改动Mapper XML文件后,无需重启Tomcat服务器,就可以立即生效,从而提高开发效率。 Spring MVC是Spring框架的一部分,它...
在Spring Boot集成MyBatis的过程中,`mapper.xml`配置文件起着至关重要的作用。它用于定义SQL语句,实现数据库的CRUD操作。本示例将深入探讨如何配置`mapper.xml`,并提供新增、修改、删除、查询及分页查询的实践...
根据项目模块来生成对应的Mapper,这里采用Maven构建项目。Mybatis Generator插件怎么使用请参考:https://my.oschina.net/boonya/blog/719502。更多代码生成器介绍请参考:...
4. **整合**:最后,将生成的文件导入到Maven项目中,并在项目中配置MyBatis的SqlSessionFactory,确保能正确加载Mapper XML文件。 关于`mysql-connector-java-5.1.38.jar`,这是一个MySQL的JDBC驱动包,它是连接...
MyBatis Mapper映射文件
"MyBatis Mapper类注入失败解决方案" MyBatis是一款流行的持久层框架,广泛应用于Java应用程序中。但是,在使用MyBatis时,可能会遇到Mapper类注入失败的问题。本文将介绍MyBatis Mapper类注入失败的解决方案,并...
Mapper.xml文件是Mybatis的核心组件,它包含了数据库操作的SQL语句和映射规则。 在处理字符串形式的多选参数时,我们通常会先在服务层将这些参数转换为Java集合,如List或Set。例如,如果用户选择的标签以逗号分隔...
本篇文章将深入探讨MyBatis的Mapper和XML文件生成,以及如何使用`mybatis-generator-core-1.3.2`工具进行自动化生成。 首先,让我们理解Mapper接口。Mapper接口是MyBatis中的一个关键概念,它允许开发者定义数据库...
通过这种方式,我们利用AspectJ在MyBatis的Mapper接口方法执行时插入自定义逻辑,实现了对Mapper方法的拦截和扩展。这种方案对于需要在多个Mapper方法中实现相同功能的情况非常有用,避免了重复的代码,提高了代码的...
UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUser(1L); ``` 这里虽然使用了`getMapper`方法,但并未创建Mapper接口的实现类。MyBatis会基于XML配置文件中的`namespace`和`...
MyBatis Mapper代理方式 MyBatis 是一个流行的持久层框架,它提供了多种方式来实现数据的 CRUD 操作,其中Mapper 代理方式是其中的一种。Mapper 代理方式是指通过创建一个 Mapper 接口,并在该接口中定义了各种数据...
总结来说,批量插入数据的Mapper配置文件写法主要包括以下步骤: 1. 在Mapper接口中定义一个接受List类型参数的方法。 2. 在Mapper XML文件中,使用`<insert>`标签定义插入语句,设置`useGeneratedKeys="true"`以便...
MyBatis Mapper v2.2.1 是一个用于Java开发中的持久层框架,它提供了强大的映射功能,帮助开发者将数据库操作与业务逻辑分离。这个压缩包包含了MyBatis Mapper的源码,对于学习和理解MyBatis的工作原理以及如何...
tk.mybatis通用Mapper允许我们创建一个基础的Mapper接口,该接口继承自`tk.mybatis.mapper.common.Mapper<T>`,其中T代表实体类。通过这个接口,我们可以直接调用基本的CRUD方法,无需编写SQL语句。 5. **实体类和...
MyBatis通用Mapper是一款在MyBatis框架基础上封装的工具,旨在简化开发过程中对数据库 CRUD(创建、读取、更新、删除)操作的繁琐过程。它通过提供预定义的SQL映射方法,使得开发者可以无需编写大量的XML配置文件,...
开箱即用,无需任何配置,继承基类 Mapper 即可获得大量通用方法; 随心所欲,通过复制粘贴的方式可以...MyBatis Mapper 要求 MyBatis 最低版本为 3.5.1,推荐使用最新版本 。 和 MyBatis 框架一样,最低需要 Java 8
在MyBatis中,Mapper是实现数据库操作的关键组件,它允许开发者将SQL语句与Java代码分离,使得代码更加清晰、易于维护。Mapper映射配置文件是MyBatis的核心组成部分,用于定义SQL查询和结果映射。 首先,我们来看...
本篇文章将详细介绍如何将Mybatis的Mapper方式与Elasticsearch的DSL(Domain Specific Language)查询相结合,以及如何通过CGlib实现动态代理来优化这一过程。 首先,让我们理解什么是Mybatis的Mapper方式。Mybatis...