原理是:拦截器

1、假设:使用MyBatis只需要定义Mapper接口,无需编写Mapper.xml文件

  如果实现无需编写Mapper.xml文件,我们必须要实现动态拼接SQL

如何实现动态拼接SQL语句?

思路:编写Mybatis的插件,在执行过程中动态生成SQL语句

2、简介:

  Mybatis通用 Mapper极其方便的使用Mybatis单表的增删改查,支持单表操作,不支持通用的多表联合查询。

3、在Mybatis的配置文件中进行配置

  3.1 分页助手也是拦截器技术,所以注意顺序,分页助手配置在通用mapper的前面

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> <plugins>
<!-- 配置分页助手 -->
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql" />
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
<property name="rowBoundsWithCount" value="true" />
</plugin>
<!-- 配置通用Mapper -->
<plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor">
<!--主键自增回写方法,默认值MYSQL,详细说明请看文档 -->
<property name="IDENTITY" value="HSQLDB" />
<!--通用Mapper接口,多个通用接口用逗号隔开 -->
<property name="mappers" value="com.github.abel533.mapper.Mapper" />
</plugin> </plugins> </configuration>

  3.2  mapper继承Mapper<?>

public interface NewUserMapper extends Mapper<User>{

}

  3.3 给实体对象 User进行注解设置

@Table(name="tb_user")
public class User { @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; // 用户名
private String userName; // 密码
private String password; // 姓名
private String name; // 年龄
private Integer age; // 性别,1男性,2女性
private Integer sex; // 出生日期
private Date birthday;

 3.3 service 使用

@Service
public class NewUserService { @Autowired
private NewUserMapper newUsermapper; public EasyUIResult queryUserList(Integer page, Integer rows) {
//设置分页参数
PageHelper.startPage(page,rows);
//設置查詢條件
Example example=new Example(User.class);
example.setOrderByClause("created DESC");
List<User> users = this.newUsermapper.selectByExample(example);
PageInfo<User> pageinfo=new PageInfo<User>(users);
return new EasyUIResult(pageinfo.getTotal(),pageinfo.getList()); } }

通用Mapper的更多相关文章

  1. 【SSM 8】spring集成Mybatis通用Mapper

    上篇博客中介绍了关于Mybatis底层封装的思路问题,那么这篇博客,就介绍一下怎么引入通用的mapper插件. 备注:本项目通过maven管理 关键版本说明: spring:4.1.3.RELEASE ...

  2. 在Spring4中使用通用Mapper

    在Spring4中使用通用Mapper http://my.oschina.net/flags/blog/355281#OSC_h2_2 目录[-] 在Spring4中使用通用Mapper 一.在Sp ...

  3. Spring Boot MyBatis 通用Mapper插件集成

    Mybatis在使用过程中需要三个东西,每张表对应一个XXMapper.java接口文件,每张表对应一个XXMapper.xml文件,每张表对应一个Entity的Java文件.   其中XXMappe ...

  4. 如何使用通用Mapper

    集成方法请看上面的文档,集成后,可以继续阅读本页文档. 1. 继承通用的Mapper<T>,必须指定泛型<T> 例如下面的例子: public interface UserIn ...

  5. 通用mapper的使用

    通用mapper的使用 导入依赖 <dependency> <groupId>com.github.abel533</groupId> <artifactId ...

  6. Mybatis通用Mapper

    极其方便的使用Mybatis单表的增删改查 项目地址:http://git.oschina.net/free/Mapper 优点? 不客气的说,使用这个通用Mapper甚至能改变你对Mybatis单表 ...

  7. tk mybatis通用mapper,复杂and or条件查询

    需求:where查询,需要支持(a or b or c) and d 也就是a.b.c三个条件是或的关系,然后再与d相与. 尝试后,可以通过以下方式处理: 方式1:Weekend语法 Weekend& ...

  8. mybatis通用mapper的使用

    项目中持久层封装了两套,一个hibernate,一个是mybatis.hibernate中封装了一些通用的方法,但是mybatis中没有,基于这个需求开始使用mybatis的通用mapper.     ...

  9. 通用mapper认识和用法

    目录 0. 认识 1. 导包 2. mybatis的config文件:mybatis-mapper-config.xml 3. spring与mybatis整合配置文件:mybatis.xml 4. ...

  10. 值得收藏的Mybatis通用Mapper使用大全。

    引言 由于小编的记性不太好,每次在写代码的时候总是把通用mapper的方法记错,所以今天把通用mapper的常用方法做一下总结,方便以后直接查看.好了,不废话啦. 引包 <!-- 通用Mappe ...

随机推荐

  1. zabbix_server.conf 详解

    # This is a configuration file for Zabbix server daemon # To get more information about Zabbix, visi ...

  2. POJ-3278.CatchThatCow(数字BFS最短路输出)

    本题大意:一个农夫和一头牛在一个数轴上,牛不动,农夫每次可使自己的坐标 +1 , -1, *2 ,问最小需要多少次农夫与牛坐标相等. 本题思路:最短路,BFS. 本题代码: #include < ...

  3. 论equals与==不同的重要性

    首先借鉴一下CSDN前辈的总结: 在编程中,通常比较两个字符串是否相同的表达式是“==” ,但在 Java 中不能这么写.在 Java 中,如果要比较 a 字符串是否等于 b 字符串,需要这么写: i ...

  4. aruba 802.11ac协议

    上述功能为802.11ac协议,高密环境下建议不勾选. 附百度百科:虽然802.11ac标准草案提高了传输速度并增加了带宽,可以支持企业网络中数量越来越庞大的设备,但是企业开始发现,这个标准需要依赖于 ...

  5. IntelliJ IDEA 运行 Maven 项目

    1.官方文档说IntelliJ IDEA已经自身集成了maven,则不用劳心去下载maven 2.导入一个程序,看是否是maven程序的关键在于工程之中有没有pom.xml这个文件,比如这里   3. ...

  6. Extract Dataset

    FROM <SAP PROGRAM DESIGN> Extract Datasets简称为Extract,是SAP中除了内表之外的另一种大量内存数据处理方式,允许用户动态地存储并排序结构化 ...

  7. 使用HttpClient 传送form 表单的请求

    在项目中用到了,需要使用HttpClient 进行模拟表单传送form 表单的需求,在平常的项目中,大概都是传送json串的样式需求,但是如何才能给对应的服务器传送一个form 表单呢? 这就需要了N ...

  8. ubuntu下安装nginx1.11.10

    (本页仅作为个人笔记参考) 为openssl,zlib,pcre配置编译 wget http://om88fxbu9.bkt.clouddn.com/package/nginx/nginx-1.11. ...

  9. linux虚拟机ping不通主机和外网(包括刚装系统遇到的一些问题)

    自己ubuntu系统安装了一个virtualBox虚拟机,里面又装了一个ubuntu-server系统: 1.先设置一下字符集,因为一开始装系统的时候选择的是中文,但里面始终无法支持中文,那就算了,反 ...

  10. YII2中ActiveDataProvider与GridView的配合使用

    YII2中ActiveDataProvider可以使用yii\db\Query或yii\db\ActiveQuery的对象,方便我们构造复杂的查询筛选语句. 配合强大的GridView,快速的显示我们 ...