通用mapper

教你如何开发Mybatis的通用Mapper

点点圈 提交于 2020-03-10 11:13:02
本文档地址: 如何开发自己的通用Mapper 博客排版不如直接在gitosc上查看,建议去上面的链接查看。 #前言 自从发了通用Mapper-0.1.0版本后,我觉得对少数人来说,这可能是他们正好需要的一个工具。至少目前的通用DAO中,很少能有比这个更强大的。 但是对另一部分人来说,使用Mybatis代码生成器(我正在和一些朋友翻译这个文档,地址: MyBatis Generator )生成xml很方便,不需要使用通用Mapper。 实际上如果你无法在自己的业务中提取出通用的单表(多表实际上能实现,但是限制会增多,不如手写xml)操作,通用的Mapper除了能增加你的初始效率以及更干净的xml配置外,没有特别大的优势。 为了更方便的扩展通用Mapper,我对0.1.0版本进行了重构。目前已经发布了0.2.0版本,这里要讲如何开发自己需要的通用Mapper。 #如何开发自己的通用Mapper ##要求 自己定义的通用Mapper必须包含泛型,例如 MysqlMapper<T> 。 自定义的通用Mapper接口中的方法需要有合适的注解。具体可以参考 Mapper 需要继承 MapperTemplate 来实现具体的操作方法。 通用Mapper中的 Provider 一类的注解只能使用相同的 type 类型(这个类型就是第三个要实现的类。)。实际上 method 也都写的一样。 #

还在用逆向工程?太Low了,试试通用Mapper吧!

房东的猫 提交于 2020-02-22 15:53:53
什么是通用Mapper? 通用mapper 可以极大的方便开发人员进行ORM,提供极其方便的单表增删改查。 什么是通用mapper,一句话简单说,它就是个辅助mybatis极简单表开发的组件。它不是为了替代mybatis,而是让mybatis的开发更方便。 可以按照自己的需要选择通用方法,还能很方便的开发自己的通用方法。 为什么要用通用Mapper? 原生Mybatis的痛点 1、mapper.xml文件里有大量的sql,当数据库表字段变动,配置文件就要修改 2、需要自己实现sql分页,select * from table where . . . limit 1,3 自己手写分页,除了传参page、pageSize,还需要返回条目总数count。 3、数据库可移植性差:如果项目更换数据库,比如oracle-->mysql,mapper.xml中的sql要重新写,因为Oracle的PLSQL 和mysql 支持的函数是不同的。 4、生成的代码量过大。 5、批量操作,批量插入,批量更新,需要自写。 如何使用通用Mapper? 1、导入依赖/jar包 通用Mapper是配合MyBatis使用的,请确保你已经是MyBatis的环境。 <!-- 通用Mapper --> <dependency> <groupId>com.github.abel533</groupId>

通用Mapper的使用

[亡魂溺海] 提交于 2020-02-08 13:54:03
作用 在使用mybatis写数据库的CRUD时候,简单的一些语句是十分繁琐且乏味的事情。 该通用Mapper会帮你自动实现简单的CRUD语句,让开发更加高效。 使用方法 1、导入依赖 在pom.xml文件中加入依赖: <!--通用mapper--> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>1.2.3</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </exclusion> </exclusions> </dependency> 2、继承通用Mapper类 将对应数据的的Mapper接口继承tk的通用Mapper接口: import tk.mybatis.mapper.common.Mapper; public interface UserMapper extends Mapper<User> { //集成tk的通用Mapper,自动实现基础的CRUD } 其中User是对应数据库表的映射bean类。 3

通用mapper 和 分页助手 pageHelper

半腔热情 提交于 2020-01-23 03:48:10
通用mapper 类似于hibernate的全自动功能 针对单边映射,extends Mapper<T> ,提供了很多单表通用的api功能 select(record),单表的字段条件,selectByExample(example) new Example(bean.class) 封装pojo类,example.createCriteria().andLike(),andEqualTo() 增加模糊查询 连表和多表操作: 通过自己写sql语句完成, 通用mapper还提供了SelectByIdListMapper 接口,通过主键集合查询pojo实体集合 insertListMapper ,一次插入多个pojo实体类 pageHelper中有两个类 PageInfo 和 PageResult new PageInfo (list),封装list结果集,通过getTotal() getList() 可以分别拿到总记录数和结果集 来源: CSDN 作者: Keson_11 链接: https://blog.csdn.net/Keson_wecanmakeit/article/details/103752879

通用mapper的使用

江枫思渺然 提交于 2019-12-21 01:01:42
使用通用Mapper,不需要再写mapper.xml配置文件,多数时候,连接口方法都不需要了,大大提高了开发效率。 通用Mapper接口大全:点这里 导入依赖: 重要提示,3.1.0及以后版本的groupId修改为tk.mybatis,artifactId为mapper <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.3.9</version> </dependency> 3.1.0之前的使用的是: <dependency> <groupId>com.github.abel533</groupId> <artifactId>mapper</artifactId> <version>2.3.4</version> </dependency> 第二部,在mybatis的全局配置文件中,注册通用mapper插件,MapperInterceptor _(plugin), 详情,点这里,如何集成通用Mapper <plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor"> <!--主键自增回写方法,默认值MYSQL,详细说明请看文档--> <property name="IDENTITY

mybatis 通用mapper返回插入主键

安稳与你 提交于 2019-12-17 14:01:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 查看地址:http://git.oschina.net/free/Mapper/blob/master/wiki/mapper3/3.Use.md 3.主键策略(仅用于insert方法) 通用Mapper还提供了序列(支持Oracle)、UUID(任意数据库,字段长度32)、主键自增(类似Mysql,Hsqldb)三种方式,其中序列和UUID可以配置多个,主键自增只能配置一个。 由于MySql自增主键最常用,所以这里从最简单的配置方式开始。 1. @GeneratedValue(generator = "JDBC") @Id @GeneratedValue(generator = "JDBC") private Integer id; 这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段)。 这种情况对应的xml类似下面这样: <insert id="insertAuthor" useGeneratedKeys="true" keyProperty="id"> insert into Author (username,password,email,bio)

Mybatis通用Mapper介绍与使用

泄露秘密 提交于 2019-12-05 17:53:18
前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中, 除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL 。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这工作量和效率的影响或许就是区别增删改查程序员和真正程序员的屏障。这时,通用Mapper便应运而生…… 什么是通用Mapper 通用Mapper就是 为了解决单表增删改查 ,基于Mybatis的插件。开发人员不需要编写SQL, 不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法 。 如何使用 以MySQL为例,假设存在这样一张表: CREATE TABLE `test_table` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT '', `create_time` datetime DEFAULT NULL, `create_user_id` varchar(32) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `update_user_id` varchar(32) DEFAULT NULL, `is_delete` int(8) DEFAULT NULL, PRIMARY KEY (`id

Mybatis通用Mapper介绍与使用

别来无恙 提交于 2019-12-04 11:35:16
转载于: https://blog.csdn.net/dwf_android/article/details/79359360 什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件。开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法。 如何使用 以MySQL为例,假设存在这样一张表: CREATE TABLE `test_table` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT '', `create_time` datetime DEFAULT NULL, `create_user_id` varchar(32) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `update_user_id` varchar(32) DEFAULT NULL, `is_delete` int(8) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 主键是 id ,自增。下面以这张表为例介绍如何使用通用Mapper。 Maven依赖 <!--

Mybatis通用Mapper介绍与使用

匿名 (未验证) 提交于 2019-12-03 00:37:01
前言 使用过jpa后再使用mybatis就会反感重复写xml文件里面的简单增删改查sql,一些复杂的特殊的业务逻辑sql当然是不可避免的,但是 大量结构类似的增删改查SQL就是大大影响程序员的开发效率。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这时,通用Mapper便应运而生…… 什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件。开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法。 Maven依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.3.7</version> <exclusions> <exclusion> <artifactId>persistence-api</artifactId> <groupId>javax.persistence</groupId> </exclusion> </exclusions> </dependency> 因为这个项目已经集成了jpa,javax.persistence的依赖已存在,故需要移除。如果项目没有这个jar,需要添加进来。 javax.persistence在实体类中会引用到其中的注解。

通用Mapper一

匿名 (未验证) 提交于 2019-12-02 23:05:13
1 引入 1.1 作用 替我们生成常用的增删改查操作的SQL语句。 1.2 代码官方发布地址 通用Mapper 1.3 前置知识 Mybatis Spring 2 入门 2.1 创建数据库表和实体类 数据库表 DROP TABLE IF EXISTS `employee`; CREATE TABLE `employee` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名', `gender` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别', `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8