原理是:拦截器

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. Floyd算法简介

    参考:https://blog.csdn.net/qq_35644234/article/details/60875818 一.Floyd算法的介绍    1.算法的特点:    弗洛伊德算法是解决任 ...

  2. suse glibcxx版本过高问题

    实际开发中发现,suse11虽然glibc版本很低,只有2.11.3,但是glibcxx版本很高,达到了3.4.19.这里我需要降低glibcxx版本.所谓glibcxx版本,即libstdc++.s ...

  3. DES算法实现(C++版)

    #include "memory.h" #include "stdio.h" enum {encrypt,decrypt};//ENCRYPT:加密,DECRY ...

  4. Java 的静态工厂方法

    本文转载自:https://www.jianshu.com/p/ceb5ec8f1174 序:什么是静态工厂方法 Effective Java 2.1 静态工厂方法与构造器不同的第一优势在于,它们有名 ...

  5. Mac 动态库加载不上

    OC xcode can't found xxx.dylib 1 targer- build phase :link binary with library添加动态库 注意不要将后边的选项选成opti ...

  6. gridview 显示数据库中的超链接

    gridview默认情况下,数据库中存储的超链接,是不会显示的.它会直接把超链接字符显示出来. 例如:选定数据源后,gridview自动生成的列是这样的: <asp:BoundField Dat ...

  7. java遍历当前会话所有Session

    //方法一:通过遍历的方法进行遍历 String FileName=""; HttpSession session=request.getSession();//获取session ...

  8. go语言使用go-sciter创建桌面应用(五) 加载元素资源

    有些时候我们需要动态的给某个UI元素加载内容或数据. demo6.go代码如下: package main; import ( "github.com/sciter-sdk/go-scite ...

  9. WebApi的过滤器

    代码: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System ...

  10. 基础数据类型补充,及capy daty7

    1,基础数据类型,总结补充. int:bit_lenth() str: captilze() 首字母大写,其余小写. upper() 全大写. lower() 全小写. find() 通过元素找索引, ...