通用mapper归纳
不再需要写mapper文件 替我们生成常用的增删改查的sql语句
注意:是根据pojo类生成的sql语句 默认规则是pojo类首字母小写作为表名(可以用@Table(name = )注解改名)
使用前的配置:
需要配置tk包下定义的MapperScannerConfigurer 写一个mapper接口 继承 Mapper 范型是你的pojo 即可!~@column注解:默认规则是驼峰字段名变成下划线形式 可以用这个注解来自定义**内置的方法**
selectone:传入一个对象进行查询 根据你提供的pojo有值的字段来生成的where子句(非null的字段 所以不允许写基本类型) 生成的条件是用 = 来比较的select:传入一个没有赋值字段名的pojo 查询全部数据selectByPrimaryKey : 传入一个int类型 注意要使用@id注解标志哪个字段是主键 否则会全部字段变成联合主键进行查询insert:插入对象 可以用@GeneratedValue(strategy = GenerationType.IDENTITY) 来返回自动生成的主键到用来插入的pojo中insertSelective:实体类中的非主键字段并且是null的值不会放在insert语句中updateByPrimaryKey :根据主键进行更新delete deleteByprimaryKey 同理
**
QBC查询
所有的带有example的方法 可以解决复杂的查询条件的封装
**
例如selectByExample方法的使用:
(1)new Example ()。createCriteria()
(2)调用andGreaterThan andLike等方法
(3)可以调用两个createCriteria 用example.or(criteria2)来用or条件链接两个criteria对象
(4)调用通用mapper的selectByExample方法
**
通用mapper的逆向工程
**
pom.xml中的配置:
<properties><!-- ${basedir}引用工程根目录 --><!-- targetJavaProject:声明存放源码的目录位置 --><targetJavaProject>${basedir}/src/main/java</targetJavaProject><!-- targetMapperPackage:声明MBG生成XxxMapper接口后存放的package位置 --><targetMapperPackage>com.公司名.shop.mappers</targetMapperPackage><!-- targetModelPackage:声明MBG生成实体类后存放的package位置 --><targetModelPackage>com.公司名.shop.entities</targetModelPackage><!-- targetResourcesProject:声明存放资源文件和XML配置文件的目录位置 --><targetResourcesProject>${basedir}/src/main/resources</targetResourcesProject><!-- targetXMLPackage:声明存放具体XxxMapper.xml文件的目录位置 --><targetXMLPackage>mappers</targetXMLPackage><!-- 通用Mapper的版本号 --><mapper.version>4.0.0-beta3</mapper.version><!-- MySQL驱动版本号 --><mysql.version>5.1.37</mysql.version>
</properties>
<dependencies><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>4.0.0-beta3</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.2.8</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency>
</dependencies>
<build><plugins><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><!-- 配置generatorConfig.xml配置文件的路径 --><configuration><configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile><overwrite>true</overwrite><verbose>true</verbose></configuration><!-- MBG插件的依赖信息 --><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>${mapper.version}</version></dependency></dependencies></plugin></plugins>
</build>需要一个properties配置文件:config.properties
# Database connection information
jdbc.driverClass = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/common_mapper
jdbc.user = root
jdbc.password = root#c3p0
jdbc.maxPoolSize=50
jdbc.minPoolSize=10
jdbc.maxStatements=100
jdbc.testConnection=true# mapper
mapper.plugin = tk.mybatis.mapper.generator.MapperPlugin
mapper.Mapper = tk.mybatis.mapper.common.Mapper
# Database connection information
jdbc.driverClass = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/common_mapper
jdbc.user = root
jdbc.password = root#c3p0
jdbc.maxPoolSize=50
jdbc.minPoolSize=10
jdbc.maxStatements=100
jdbc.testConnection=true# mapper
mapper.plugin = tk.mybatis.mapper.generator.MapperPlugin
mapper.Mapper = tk.mybatis.mapper.common.Mapper还需要一个xml:generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!-- 引入外部属性文件 --><properties resource="config.properties" /><context id="Mysql" targetRuntime="MyBatis3Simple"defaultModelType="flat"><property name="beginningDelimiter" value="`" /><property name="endingDelimiter" value="`" /><!-- 配置通用Mapper的MBG插件相关信息 --><plugin type="${mapper.plugin}"><property name="mappers" value="${mapper.Mapper}" /></plugin><!-- 配置连接数据库的基本信息 --><jdbcConnection driverClass="${jdbc.driverClass}"connectionURL="${jdbc.url}" userId="${jdbc.user}" password="${jdbc.password}"></jdbcConnection><!-- 配置Java实体类存放位置 --><javaModelGenerator targetPackage="${targetModelPackage}"targetProject="${targetJavaProject}" /><!-- 配置XxxMapper.xml存放位置 --><sqlMapGenerator targetPackage="${targetXMLPackage}"targetProject="${targetResourcesProject}" /><!-- 配置XxxMapper.java存放位置 --><javaClientGenerator targetPackage="${targetMapperPackage}"targetProject="${targetJavaProject}" type="XMLMAPPER" /><!-- 根据数据库表生成Java文件的相关规则 --><!-- tableName="%"表示数据库中所有表都参与逆向工程,此时使用默认规则 --><!-- 默认规则:table_dept→TableDept --><!-- 不符合默认规则时需要使用tableName和domainObjectName两个属性明确指定 --><table tableName="tabple_emp" domainObjectName="Employee"><!-- 配置主键生成策略 --><generatedKey column="emp_id" sqlStatement="Mysql" identity="true" /></table></context>
</generatorConfiguration>
通用mapper归纳相关推荐
- Mybatis之通用Mapper使用
增加Maven依赖 <!-- mybatis 通用mapper --> <dependency><groupId>tk.mybatis</groupId> ...
- MyBatis 为什么需要通用 Mapper ?
一.通用 Mapper 的用途 ? 我个人最早用 MyBatis 时,先是完全手写,然后用上了 MyBatis 代码生成器(简称为 MBG),在使用 MBG 过程中,发现一个很麻烦的问题,如果数据库字 ...
- Mybatis 通用 Mapper 使用 ①
简介 官网链接:https://mapperhelper.github.io/docs/ 通用Mapper都可以极大的方便开发人员.可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方 ...
- MyBatis 通用Mapper 入门教程
通用Mapper 简单教程 Mapper 项目地址: [http://git.oschina.net/free/Mapper] 本教程代码地址: [https://github.com/oakshar ...
- 如何使用通用Mapper
集成方法请看上面的文档,集成后,可以继续阅读本页文档. 1. 继承通用的Mapper<T>,必须指定泛型<T> 例如下面的例子: public interface UserIn ...
- Mybatis通用Mapper
极其方便的使用Mybatis单表的增删改查 项目地址:http://git.oschina.net/free/Mapper 优点? 不客气的说,使用这个通用Mapper甚至能改变你对Mybatis单表 ...
- SpringBoot整合Mybatis,使用通用mapper和PageHelper进行分页
乐哉码农 上节介绍了如何整合Security,这节就说下如何再Springboot下使用持久层框架mybatis和牛人封装的通用mapper与mybatis的整合,直接进入正题吧! 1.首先引入我们需 ...
- 通用mapper和分类实现
1 通用Mapper 1.1 通用Mapper介绍 1.1.1 架构设计 说明:使用了通用Mapper后,单表的增删改查操作会自动的进行维护. 问题:如何才能实现数据的通用并且是动态的? 1.2 JP ...
- spring boot整合mybatis+通用mapper+pagehelper分页插件
spring boot整合mybatis+通用mapper+pagehelper分页插件 pom依赖 <?xml version="1.0" encoding="U ...
最新文章
- 【iCore组合式双核心开发板教程】通过STM32 FSMC 读写FPGA Verilog 例子
- 关键七步,用Apache Spark构建实时分析Dashboard
- 福昕阅读器drm加密解密总结
- 人工智能诗歌写作平台_智能写作VS人工写作,Giiso写作机器人解放你的创造力...
- mysql 检查点_my05_mysql检查点简述
- js手机号中间四位_11位手机号码隐藏中间四位数,学会Substitute函数一键搞定!...
- discuz 表结构
- java socket程序应用_socket应用小程序
- 2014年工作中遇到的20个问题:161-180
- 重大危机引发的公司经营战略问题回顾
- 怎样才能通过c语言二级考试,如何一次就通过全国计算机二级C语言考试,高分技巧四部曲...
- 通过代理下载Google Code
- 华为鸿蒙内涵,“鸿蒙”两个字有何真意,还得让古人来解读
- educoder——面向对象程序设计java——第三阶段-Java 高级特性——Java 集合框架
- EMC、Pure和NetApp推新品,NAS闪存场景在哪里
- 每年工作日与非工作日的设置
- 基于C#Winform+MySQL的商务娱乐会馆自助服务系统
- win2003 64位 企业版 (win 2003_r2_enterprise_x64.iso)下载地址
- 微信屏蔽网页的依据是什么?
- js中当等于最小值是让代码不执行_28 个JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已...