通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及
Example
相关的单表操作。通用 Mapper 是为了解决 MyBatis 使用中 90% 的基本操作,使用它可以很方便的进行开发,可以节省开发人员大量的时间。
一、Mybatis基于Maven插件快速生成Java模型以及XML
<build> <plugins> <!-- mybatis自动生成插件 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.4.4</version> </dependency> </dependencies> <configuration> <!--配置文件的路径--> <configurationFile>src/main/resources/AGeneratorConfig.xml</configurationFile> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build>
AGeneratorConfig.xml
这里以A打头的命名方式主要是方便快速找到自动生成配置文件。
一、自增主键方式一
<table tableName="t_car_mortgage" domainObjectName="CarMortgageDO" enableSelectByExample="false" enableDeleteByExample="false" enableCountByExample="false" enableUpdateByExample="false"> <generatedKey column="id" sqlStatement="MySql" identity="true"/> </table>
自增主键策略生成的Java模型例子:
@Table(name = "`t_car_mortgage`") public class CarMortgageDO { /** * 主键 */ @Id @Column(name = "`id`") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; }
二、自增主键方式二
在项目开发中遇到过主键生成重复报错,将Java模型注解改成JDBC如下这种方式可解决。猜测大概是不支持bigint
这样的字段类型吧。
@Table(name = "`t_car_mortgage`") public class CarMortgageDO { /** * 主键 */ @Id @Column(name = "`id`") @GeneratedValue(generator = "JDBC") private Long id; }
三、UUID主键策略
<table tableName="T_CUSTOMER_INFO" domainObjectName="CustomerInfoDO" enableSelectByExample="false" enableDeleteByExample="false" enableCountByExample="false" enableUpdateByExample="false"> <generatedKey column="customer_id" sqlStatement="select upper(replace(uuid(),'-',''))" identity="false" type="pre"/> </table>
UUID主键策略生成的Java模型例子:
@Table(name = "`t_customer_info`") public class CustomerInfoDO { /** * 客户id */ @Id @Column(name = "`customer_id`") @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "select upper(replace(uuid(),'-',''))") private String customerId; }