Mybatis三剑客介绍

1 MyBatis自动生成代码- generator

什么叫做逆向过程

由数据库的表 自动生成实体类 和 mapper 的工程

怎样使用你逆向工程
  • 新建maven 项目 导入依赖

  • 导入依赖

  • 创建mybatis 连接池配置文件

  • 创建 MbSqlSessionFactory 工具类

  • 为了打印sql 语句 导入log4j 的配置文件

  • 往工程中 加入逆向工程的配置文件
    config.properties

jdbc.driverClass=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/shujuku?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.user=root
jdbc.password=123456group.package=com.qf.mybatis03# \u5982\u679C\u662Fmysql \u8FD9\u4E2A\u914D\u7F6E\u53EF\u4EE5\u4E0D\u5199  \u5982\u679C\u662Foracle \u8FD9\u91CC\u8981\u5199\u6210\u6570\u636E\u5E93\u540D\u5B57catalog.name=shujuku

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="testTables" targetRuntime="MyBatis3"><property name="javaFileEncoding" value="UTF-8"></property><property name="beginningDelimiter" value="`"/><property name="endingDelimiter" value="`"/><property name="lombok" value="Getter,Setter,ToString,Accessors"/><commentGenerator><!-- 是否去除自动生成的注释 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码 --><jdbcConnection driverClass="${jdbc.driverClass}"connectionURL="${jdbc.url}"userId="${jdbc.user}"password="${jdbc.password}"></jdbcConnection><!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetProject:生成PO类的位置 --><javaModelGenerator targetPackage="${group.package}.entity"targetProject="src/main/java"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /><!-- 从数据库返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="mapper"targetProject="src/main/resources"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="${group.package}.mapper"targetProject="src/main/java"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 指定数据库表% 就是把这个数据库下面的表 都反向生成--><table schema="" tableName="tb_good"></table></context>
</generatorConfiguration>
  • 往pom.xml 中添加mybatis 自动生成代码的插件
 <!--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.44</version></dependency></dependencies><configuration><!--配置文件的路径--><configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile><overwrite>true</overwrite></configuration></plugin>
  • 自动生成代码[注意***Mapper.xml 需要到数据源的配置文件中 去注册一下]
    <mappers><mapper resource="mapper/TbGoodMapper.xml"></mapper></mappers>
  • 测试一下 逆向过程中生成的方法

2 MyBatis小鸟- plugins

3 MyBatis 分页插件 - PageHelper

导入依赖

      <!-- mybatis 的分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>${pagehelper.version}</version></dependency><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>${jsqlparser.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version></dependency>

使用分页

package com.qf.mybatis03.service;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.qf.mybatis03.common.MySqlSessionFactory;
import com.qf.mybatis03.common.PageModel;
import com.qf.mybatis03.common.StringUtils;
import com.qf.mybatis03.entity.TbGood;
import com.qf.mybatis03.entity.TbGoodExample;
import com.qf.mybatis03.mapper.TbGoodMapper;
import java.math.BigDecimal;
import java.util.List;public class GoodService {public PageModel<TbGood> paging(String name,String price1,String price2,int pageNo,int pageSize){try {TbGoodMapper mapper = MySqlSessionFactory.getSession().getMapper(TbGoodMapper.class);TbGoodExample example = new TbGoodExample();TbGoodExample.Criteria criteria = example.createCriteria();if (!StringUtils.isEmpty(name)){criteria.andNameLike("%"+name+"%");}if (!StringUtils.isEmpty(price1)){criteria.andPriceGreaterThan(new BigDecimal(price1));}if (!StringUtils.isEmpty(price2)){criteria.andPriceLessThan(new BigDecimal(price2));}//使用分页插件  参数:第几页 一夜多少条PageHelper.startPage(pageNo,pageSize);//查询数据List<TbGood> tbGoods = mapper.selectByExample(example);//新建分页 TbGood为与数据库对应的实体类名字PageInfo<TbGood> info = new PageInfo<>(tbGoods);//获取分页内容List<TbGood> list = info.getList();//由于前端写死没有使用分页继续操作了PageModel<TbGood> model = new PageModel<>();model.setList(list);model.setTotals((int)info.getTotal());model.setPageSize(pageSize);model.setPageNo(pageNo);return model;} catch (Exception e) {throw e;} finally {MySqlSessionFactory.closeSession();}}
}

Mybatis三剑客相关推荐

  1. 项目的包结构 mybatis三剑客

    mybatis三剑客 1.mybatis generator 数据库自动生成pojo对象类 xml 是dao接口的实现   service调用dao mybatis gentenrator gener ...

  2. Mybatis—三剑客之generator使用方法

    三剑客之generator主要用于自动生成POJO实体类 准备素材: mybatis-generator-core-1.3.2.jar     mysql-connector-java-5.1.26. ...

  3. mmall电商项目学习笔记之mybatis三剑客

    一.Mybatis plugin IDEA 2017.3版本下Mybatis plugin 3.53安装使用 插件下载地址 http://www.awei.org/download/iMybatis- ...

  4. mybatis学习与踩坑记录

    mybatis resultmap高级映射 应用场景:如果sql查询的列名和pojo的属性名不一致,可以使用resultMap将列名和pojo的属性名作一个对应关系,就可以映射成功了.(如果返回值为i ...

  5. mysql四剑客_MyBatis三剑客

    MyBatis三剑客 MyBatis 可以通过 XML 或注解来配置和映射原始类型.接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录 ...

  6. 第5步 配置pom.xml文件 pom文件好了就是jar包引入好了

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  7. Meaven的pom文件配置

    archtype自动生成的 直接复制讲解一下好了 https://search.maven.org/     maven中央仓库 <project xmlns="http://mave ...

  8. 面试项目 java-服务端2 18h58

    idea2017对mybatis   plugin支持不是很好    标准的meaven项目用谁都一样 archetype是官网提供的模板项目 .gitignore文件非常的重要配置 Meven的po ...

  9. Debug的心路历程

    在IDEA中创建一个maven项目 一天前,我开始了跟着教程在IDEA中创建maven项目,其中坎坷重重.经过了无数次error又debug的经历,我终于成功地解决了一些又一些的问题(泪奔~)现在将d ...

最新文章

  1. 虚拟机下CentOS 6.5配置IP地址的三种方法
  2. 计算机书籍-前谷歌工程师撰写-机器学习实战
  3. 贝叶斯统计:信噪对偶与Dawid定理
  4. 求带便函数权值的最短路径
  5. tlwr886n发挥最大网速_路由器中的2.4G和5G有什么区别?用错了网速变“龟速”
  6. 如何导入外部Git仓库到中国源代码托管平台(Git@OSC)
  7. android学习笔记---52_发送状态栏通知
  8. php $that,PHP中$this和$that指针使用实例
  9. 计算机三级之嵌入式系统学习笔记2
  10. Python子类继承父类构造函数说明
  11. TypeScript:对象
  12. linux添加变色龙引导,变色龙引导工具下载
  13. html怎么将坐标轴变成百分比,Excel中进行设置双坐标及次坐标轴显示百分比的方法...
  14. 1 Pandas实例(一)-2012美国大选政治献金实例
  15. 解决微信H5端用户注册登录
  16. android surfaceview 背景颜色,android – 设置Surface View的背景颜色
  17. [PPTX解析] 图片效果算法篇:设置透明色
  18. [英语六级] 六级通关笔记 — 翻译题
  19. 7-4 寻找250 (10分)
  20. 提取lbp特征java代码_目标检测的图像特征提取之_LBP特征

热门文章

  1. 【解决方案】基于国标GB28181协议视频智能分析平台EasyCVR/EasyGBS打造的智慧企业AR云景解决方案
  2. 国产紫光FPGA实现DDS信号发生器
  3. PHP网约车H5打车系统源码 分为乘客端和司机端
  4. 【Matlab电力负荷预测】日特征气象因素支持向量机SVM电力负荷预测【含源码 1612期】
  5. springboot 出现A component required a bean of type ‘com.cly.dao.OthersMapper‘ that could not be found.
  6. Android 测试之Monkey
  7. ITU-R BT.656和ITU-R BT.601
  8. iOS面试:如何在平时工作中积累经验
  9. Windows 下 C++ 利用 OpenCV glob 函数获取文件夹下所有文件绝对路径
  10. 浅谈我对元宇宙、Web3、区块链与NFT的理解