通用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 ...
最新文章
- RHEL7配置本地yum源
- math 向上取整_自我说明:关于Math和File类的具体说明.
- 二叉树中进行 BFS 和图中进行 BFS 最大的区别
- php7.1 mysql_安装最新LAMP环境 (CentOS7+PHP7.1.5+Mysql5.7)
- sql server计算日期到当前日期天数_Excel必学的7个计算日期间隔差的技巧
- 联想小新触摸板驱动_联想lenovo笔记本触摸板驱动-联想触摸驱动 win7版下载16.2.5.0 官方版-西西软件下载...
- 施乐s2110进入维修模式_施乐进入维修模式步骤
- sql——手机号码归属地、身份证前六位归属地、省市区级联
- 【Int. J. Mol. Sci.】黄瓜液泡转化酶基因CsVI1参与对低温胁迫的响应和己糖积累
- Python 算法:线性回归及相关公式推导
- 串口console乱码_串口打印机不能打印或打印乱码
- js弹幕脚本(基于油猴)
- 百度百聘企业简单信息获取
- netcat 下载地址
- IntelliJ IDEA JDK配置
- AVI 文件格式分析
- 雅虎与谷歌合作后的十种景象 鲍尔默或将离职
- 锚点定位 跳转到指定位置 回到顶部功能
- shp矢量数据打包压缩
- 我喜欢你是寂静的--聂鲁达
热门文章
- MJ0011技术分析:细数3721(雅虎助手)两年来的流氓升级史
- python3学习之路 -- 7)初级练习4 - 支付密码、账号、价格竞猜、星座
- 成功科学家如何读文献
- 防止开发人员开发后门程序,数据库安全之应用程序调用的危险
- CPU漏洞补丁修复导致KeServiceDescriptorTable获取变更
- ios与mac的时间问题,修改闹钟时间,24小时制
- 单片机的就业前景怎么样?薪资待遇如何?
- 函授计算机应用基础答案,全国高等教育自学考试计算机应用基础试题
- ad中使用智能粘贴_AD10 复制问题(复制方法和智能粘贴 拼版)
- gitlab默认加密方式