`
NeverFlyAway
  • 浏览: 69517 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Mybatis Mapper的class写法

阅读更多

使用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种解决方案.docx

    IntellijIDEA 中 MybatisMapper 自动注入警告的 6 种解决方案 IntellijIDEA 中 MybatisMapper 自动注入警告的 6 种解决方案是开发者们经常遇到的问题。本文将分析原因,并列出解决该警告的几种方案。 方案 1:为 @...

    Mybatis Mapper的使用

    Mybatis Mapper是一个强大的工具,它在Java开发中用于简化数据访问层(DAO)的实现,尤其是在使用Mybatis作为持久层框架的时候。Mybatis Mapper的主要目标是让我们能够仅定义接口,而无需手动编写接口的实现类,这极...

    Spring+mvc+mybatis Mapper xml自动加载

    "Spring+mvc+mybatis Mapper xml自动加载"这个主题聚焦于如何在开发过程中优化配置,使得改动Mapper XML文件后,无需重启Tomcat服务器,就可以立即生效,从而提高开发效率。 Spring MVC是Spring框架的一部分,它...

    springboot mybatis mapper.xml 配置

    在Spring Boot集成MyBatis的过程中,`mapper.xml`配置文件起着至关重要的作用。它用于定义SQL语句,实现数据库的CRUD操作。本示例将深入探讨如何配置`mapper.xml`,并提供新增、修改、删除、查询及分页查询的实践...

    Mybatis Mapper生成器示例

    根据项目模块来生成对应的Mapper,这里采用Maven构建项目。Mybatis Generator插件怎么使用请参考:https://my.oschina.net/boonya/blog/719502。更多代码生成器介绍请参考:...

    mybatis mapper自动生成

    4. **整合**:最后,将生成的文件导入到Maven项目中,并在项目中配置MyBatis的SqlSessionFactory,确保能正确加载Mapper XML文件。 关于`mysql-connector-java-5.1.38.jar`,这是一个MySQL的JDBC驱动包,它是连接...

    MyBatis Mapper映射文件

    MyBatis Mapper映射文件

    关于mybatis mapper类注入失败的解决方案

    "MyBatis Mapper类注入失败解决方案" MyBatis是一款流行的持久层框架,广泛应用于Java应用程序中。但是,在使用MyBatis时,可能会遇到Mapper类注入失败的问题。本文将介绍MyBatis Mapper类注入失败的解决方案,并...

    mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar

    Mapper.xml文件是Mybatis的核心组件,它包含了数据库操作的SQL语句和映射规则。 在处理字符串形式的多选参数时,我们通常会先在服务层将这些参数转换为Java集合,如List或Set。例如,如果用户选择的标签以逗号分隔...

    mybatis mapper 和xml文件生成

    本篇文章将深入探讨MyBatis的Mapper和XML文件生成,以及如何使用`mybatis-generator-core-1.3.2`工具进行自动化生成。 首先,让我们理解Mapper接口。Mapper接口是MyBatis中的一个关键概念,它允许开发者定义数据库...

    用aspectj拦截mybatis mapper的一种可行方案

    通过这种方式,我们利用AspectJ在MyBatis的Mapper接口方法执行时插入自定义逻辑,实现了对Mapper方法的拦截和扩展。这种方案对于需要在多个Mapper方法中实现相同功能的情况非常有用,避免了重复的代码,提高了代码的...

    MyBatis的helloworld(不使用Mapper接口实现MyBatis查询数据库).zip

    UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUser(1L); ``` 这里虽然使用了`getMapper`方法,但并未创建Mapper接口的实现类。MyBatis会基于XML配置文件中的`namespace`和`...

    MyBatis Mapper代理方式

    MyBatis Mapper代理方式 MyBatis 是一个流行的持久层框架,它提供了多种方式来实现数据的 CRUD 操作,其中Mapper 代理方式是其中的一种。Mapper 代理方式是指通过创建一个 Mapper 接口,并在该接口中定义了各种数据...

    详解MyBatis批量插入数据Mapper配置文件的写法

    总结来说,批量插入数据的Mapper配置文件写法主要包括以下步骤: 1. 在Mapper接口中定义一个接受List类型参数的方法。 2. 在Mapper XML文件中,使用`&lt;insert&gt;`标签定义插入语句,设置`useGeneratedKeys="true"`以便...

    MyBatis Mapper v2.2.1.zip

    MyBatis Mapper v2.2.1 是一个用于Java开发中的持久层框架,它提供了强大的映射功能,帮助开发者将数据库操作与业务逻辑分离。这个压缩包包含了MyBatis Mapper的源码,对于学习和理解MyBatis的工作原理以及如何...

    spring-boot+tk.mybatis通用mapper

    tk.mybatis通用Mapper允许我们创建一个基础的Mapper接口,该接口继承自`tk.mybatis.mapper.common.Mapper&lt;T&gt;`,其中T代表实体类。通过这个接口,我们可以直接调用基本的CRUD方法,无需编写SQL语句。 5. **实体类和...

    浅谈MyBatis通用Mapper实现原理

    浅谈MyBatis通用Mapper实现原理 MyBatis通用Mapper是MyBatis框架中的一种通用Mapper实现方式,主要提供了一些通用的方法,这些方法是以接口的形式提供的。通用Mapper的实现原理主要是通过Java反射机制和MyBatis框架...

    mybatis通用mapper

    MyBatis通用Mapper是一款在MyBatis框架基础上封装的工具,旨在简化开发过程中对数据库 CRUD(创建、读取、更新、删除)操作的繁琐过程。它通过提供预定义的SQL映射方法,使得开发者可以无需编写大量的XML配置文件,...

    一个不需要任何配置就可以直接使用的通用 MyBatis Mapper,通过简单的学习就可以直接在项目中使用

    开箱即用,无需任何配置,继承基类 Mapper 即可获得大量通用方法; 随心所欲,通过复制粘贴的方式可以...MyBatis Mapper 要求 MyBatis 最低版本为 3.5.1,推荐使用最新版本 。 和 MyBatis 框架一样,最低需要 Java 8

    Java的MyBatis框架中Mapper映射配置的使用及原理解析

    在MyBatis中,Mapper是实现数据库操作的关键组件,它允许开发者将SQL语句与Java代码分离,使得代码更加清晰、易于维护。Mapper映射配置文件是MyBatis的核心组成部分,用于定义SQL查询和结果映射。 首先,我们来看...

Global site tag (gtag.js) - Google Analytics