mybatis generator以及分页插件com.qiukeke.mybatis.plugins.MySQLLimitPlugin
1、官网:http://www.mybatis.org/generator/
mybatis generator 生成的文件,包含三类:
1)Model 实体文件,一个数据库表生成一个 Model 实体;
2)ModelExample 文件,此文件和实体文件在同一目录下,主要用于查询条件构造;
3)Mapper 接口文件,数据数操作方法都在此接口中定义;
4)Mapper XML 配置文件;
2、安装 eclipse 插件 mybatis generator
Help/Eclipse Marketplace...,在eclipse marketplace中搜索 mybatis generator


可以查看该插件支持的版本

查看自己使用的eclipse的版本:Help/About Eclipse IDE。另外官网:http://www.mybatis.org/generator/也链接了eclipse的mybatis generator插件:

3、eclipse 的 mybatis generator 插件的使用
3.1、新建一个maven工程test_mybatis_generator,引入依赖
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.36</version> </dependency> <!-- limit selection --> <dependency> <groupId>com.qiukeke</groupId> <artifactId>mybatis-generator-limit-plugin</artifactId> <version>1.0.4</version> </dependency> </dependencies>
3.2、新建generator.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 数据库驱动 <classPathEntry location="C:\Users\xxx\.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/> --> <context id="DB2Tables" targetRuntime="MyBatis3"> <plugin type="com.qiukeke.mybatis.plugins.MySQLLimitPlugin"></plugin> <commentGenerator> <property name="suppressDate" value="true"/> <property name="suppressAllComments" value="true"/> </commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://xx.xxx.xx.xxx:3306/test" userId="xxx" password="xxx"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <javaModelGenerator targetPackage="com.oy.model" targetProject="test_mybatis_generator"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <sqlMapGenerator targetPackage="com.oy.mapping" targetProject="test_mybatis_generator"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="com.oy.dao" targetProject="test_mybatis_generator"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <table tableName="exp_user" domainObjectName="User" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true"></table> </context> </generatorConfiguration>
3.3、选中generator.xml,右键/Run as
  
4、不使用eclipse插件
4.1、新建一个普通java工程(或maven工程),新建一个含main方法的类:
package com.oy.generator; import java.io.File; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; public class Generator { public static void main(String[] args) throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("src/generator.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } }
4.2、在src下新建generator.xml,内容与前面的一样。
  targetProject=".\src"
<javaModelGenerator targetPackage="com.oy.model" targetProject=".\src"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <sqlMapGenerator targetPackage="com.oy.mapping" targetProject=".\src"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="com.oy.dao" targetProject=".\src"> <property name="enableSubPackages" value="true"/> </javaClientGenerator>
4.3、引入jar包,或通过maven导入
   
4.4、运行main()方法。
5、使用maven插件:mybatis-generator-maven-plugin
参考:https://www.cnblogs.com/Neonuu/p/5865226.html
6、在generatro.xml中添加了<plugin type="com.qiukeke.mybatis.plugins.MySQLLimitPlugin"></plugin>,从而生成的mybatis代码支持分页。
也可以参考其他博客实现分页:
1)https://www.cnblogs.com/fengzheng/p/5889312.html
2)https://blog.csdn.net/xiao__gui/article/details/51333693/
7、如果使用上面的分页插件mybatis-generator-limit-plugin-1.0.4.jar
简单演示如何在代码中使用分页:
public PageBean<CommissionRecord> getCommissionRecords(CommissionRecord userCommisssion, PageBean<CommissionRecord> pageBean) { CommissionRecordExample example = new CommissionRecordExample(); CommissionRecordExample.Criteria criteria = example.createCriteria(); if (userCommisssion.getUserid() != null) { criteria.andUseridEqualTo(userCommisssion.getUserid()); } if (userCommisssion.getBegin() != null) { criteria.andBeginEqualTo(userCommisssion.getBegin()); } if (userCommisssion.getEnd() != null) { criteria.andEndEqualTo(userCommisssion.getEnd()); } if (userCommisssion.getType() != null) { criteria.andTypeEqualTo(userCommisssion.getType()); } if (userCommisssion.getStatus() != null) { criteria.andStatusEqualTo(userCommisssion.getStatus()); } if (pageBean != null && pageBean.getPage() > 0 && pageBean.getRows() > 0) { example.setOffset(pageBean.getStart()); example.setLimit(pageBean.getRows()); } if (pageBean != null && UtilFunctions.isNotEmpty(pageBean.getSortby())) { if (UtilFunctions.isEmpty(pageBean.getSort())) { example.setOrderByClause(pageBean.getSortby() + " desc"); } else { example.setOrderByClause(pageBean.getSortby() + " " + pageBean.getSort()); } } else { example.setOrderByClause("addtime desc"); } List<CommissionRecord> list = commissionRecordDao.selectByExample(example); pageBean.setBeanList(list); pageBean.setTotalRows(getCount(userCommisssion)); return pageBean; }
pageBean.class
public class PageBean<T> { private int page;// 当前页 private int rows;// 每页记录数pageSize、limit private long totalRows;// 总记录数 // private int start;// 起始页offset // private int totalPages;// 总页数:totalPages private List<T> beanList;// 当前页的记录 private String url; private String sortby; private String sort; public PageBean() { super(); } public PageBean(int page, int rows) { super(); this.page = page; this.rows = rows; } public PageBean(String sortby, String sort) { super(); this.sortby = sortby; this.sort = sort; } public PageBean(int page, int rows, String sortby, String sort) { super(); this.page = page; this.rows = rows; this.sortby = sortby; this.sort = sort; } // 通过page和rows计算start public int getStart() { return (page - 1) * rows; } // 通过总记录数和每页记录数来计算总页数 public int getTotalPages() { // 总页数=总记录数/每页记录数 int tp = (int) totalRows / rows; return totalRows % rows == 0 ? tp : tp + 1; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } public long getTotalRows() { return totalRows; } public void setTotalRows(long totalRows) { this.totalRows = totalRows; } public int getRows() { return rows; } public void setRows(int rows) { this.rows = rows; } public List<T> getBeanList() { return beanList; } public void setBeanList(List<T> beanList) { this.beanList = beanList; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getSortby() { return sortby; } public void setSortby(String sortby) { this.sortby = sortby; } public String getSort() { return sort; } public void setSort(String sort) { this.sort = sort; } }
---
posted on 2019-05-01 15:59 wenbin_ouyang 阅读(1114) 评论(0) 收藏 举报
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号