更多精彩文章欢迎关注公众号“Java之康庄大道”

mbg:mybatis generator=mybatis代码生成器

1.看一下项目结构

其中bean文件,mapper接口文件和mapper.xml文件是代码生成器自动生成的。

使用generator生成器的方法,百度mybatis,进入git仓库,点mybatis,找到generator就是生成器的源码和使用方法说明书。

首先,编写一个dmscq.xml配置文件。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5.  
  6. <generatorConfiguration>
  7. <!-- targetRuntime="MyBatis3":生成mybatis豪华框架,如果是MyBatis3Simple则生成简单框架 -->
  8. <context id="DB2Tables" targetRuntime="Mybatis3">
  9. <jdbcConnection driverClass="com.mysql.jdbc.Driver"
  10. connectionURL="jdbc:mysql://localhost:3306/db_blog?allowMultiQueries=true"
  11. userId="root"
  12. password="5678">
  13. </jdbcConnection>
  14.  
  15. <javaTypeResolver >
  16. <property name="forceBigDecimals" value="false" />
  17. </javaTypeResolver>
  18.  
  19. <!-- 指定javabean的生成策略
  20. targetPackage:目标包名 targetProject:目标工程-->
  21. <javaModelGenerator targetPackage="com.atguigu.mybatis.bean" targetProject=".\src">
  22. <property name="enableSubPackages" value="true" />
  23. <property name="trimStrings" value="true" />
  24. </javaModelGenerator>
  25. <!-- sqlMapGenerator:sql映射生成策略: -->
  26. <sqlMapGenerator targetPackage="com.atguigu.mybatis.dao" targetProject=".\conf">
  27. <property name="enableSubPackages" value="true" />
  28. </sqlMapGenerator>
  29. <!-- javaClientGenerator:指定mapper接口所在的位置 -->
  30. <javaClientGenerator type="XMLMAPPER" targetPackage="com.atguigu.mybatis.dao" targetProject=".\src">
  31. <property name="enableSubPackages" value="true" />
  32. </javaClientGenerator>
  33. <!-- 指定要逆向分析哪些表:根据表要创建javaBean -->
  34. <table tableName="t_blogger" domainObjectName="Blogger"></table>
  35. <table tableName="t_dep" domainObjectName="Department"></table>
  36.  
  37. </context>
  38. </generatorConfiguration>

写好配置文件后,去test类中写一个生成的方法。

  1. package com.atguigu.mybatis.test;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. import org.apache.ibatis.io.Resources;
  10. import org.apache.ibatis.session.SqlSession;
  11. import org.apache.ibatis.session.SqlSessionFactory;
  12. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  13. import org.junit.Test;
  14. import org.mybatis.generator.api.MyBatisGenerator;
  15. import org.mybatis.generator.config.Configuration;
  16. import org.mybatis.generator.config.xml.ConfigurationParser;
  17. import org.mybatis.generator.internal.DefaultShellCallback;
  18.  
  19. import com.atguigu.mybatis.bean.Blogger;
  20. import com.atguigu.mybatis.bean.BloggerExample;
  21. import com.atguigu.mybatis.bean.BloggerExample.Criteria;
  22. import com.atguigu.mybatis.dao.BloggerMapper;
  23.  
  24. public class MyBatisTest {
  25.  
  26. public SqlSessionFactory getSqlSessionFactory() throws IOException {
  27. String resource = "mybatis-config.xml";
  28. InputStream inputStream = Resources.getResourceAsStream(resource);
  29. return new SqlSessionFactoryBuilder().build(inputStream);
  30. }
    //生成代码根据配置文件
  31. @Test
  32. public void runDmscq() throws Exception{
  33. List<String> warnings = new ArrayList<String>();
  34. boolean overwrite = true;
  35. File configFile = new File("dmscq.xml");
  36. ConfigurationParser cp = new ConfigurationParser(warnings);
  37. Configuration config = cp.parseConfiguration(configFile);
  38. DefaultShellCallback callback = new DefaultShellCallback(overwrite);
  39. MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
  40. myBatisGenerator.generate(null);
  41. }
    //测试生成代码
  42. @Test
  43. public void getBloggerByExample() throws Exception {
  44. SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
  45. SqlSession openSession = sqlSessionFactory.openSession();
  46. BloggerMapper mapper = openSession.getMapper(BloggerMapper.class);
  47. //selectByExample:查询根据条件,条件为null则是查询所有。
  48. /*List<Blogger> selectByExample = mapper.selectByExample(null);
  49. for (Blogger blogger : selectByExample) {
  50. System.out.println(blogger);
  51. }*/
  52. //查询username中带e的并且profile中带e的
  53. BloggerExample bloggerExample = new BloggerExample();
  54. Criteria createCriteria = bloggerExample.createCriteria();
  55. createCriteria.andUsernameLike("%e%");
  56. createCriteria.andProfileLike("%e%");
  57. /*List<Blogger> list = mapper.selectByExample(bloggerExample);
  58. for (Blogger blogger : list) {
  59. System.out.println(blogger);
  60. }*/
  61. //如果加个条件,查询username中带e的并且profile中带e的,(或者sign中带c的)
  62. Criteria criteriaCriteria2 = bloggerExample.createCriteria();
  63. criteriaCriteria2.andSignLike("%c%");
  64. //和之前的条件进行拼装
  65. bloggerExample.or(criteriaCriteria2);
  66. List<Blogger> blo = mapper.selectByExample(bloggerExample);
  67. for (Blogger blogger : blo) {
  68. System.out.println(blogger);
  69. }
  70.  
  71. }
  72.  
  73. }

以上测试代码分别测试了,黄色查询所有的blogger,绿色的查询username和profile中都带e的。最后所有没注释掉的代码是查询username和profile中都带e或者sign中带c的

mybatis逆向工程mbg的更多相关文章

  1. mybatis逆向工程 mbg运行java代码时提示找不到MBG.xml的解决方法

    这里要写全路径才能找到文件

  2. mybatis逆向工程之配置

    逆向工程1.什么是逆向工程mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml. ...

  3. IDEA创建一个Mybatis逆向工程

    Mybatis逆向工程简介: MyBatis Generator (MBG) 是一个Mybatis的代码生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各个版本的代码,和iBATI ...

  4. SpringBoot 3.SpringBoot 整合 MyBatis 逆向工程以及 MyBatis 通用 Mapper

    一.添加所需依赖,当前完整的pom文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&qu ...

  5. 回顾一下MyBatis逆向工程——自动生成代码

    前言 最近做的项目(SSM+Shiro)的数据库表已经创建完成,一共有15张表,如果我们一个个去写pojo/bean的代码以及各种sql语句的话未免太过麻烦而且很容易出错,这个时候我们就需要MyBat ...

  6. mybatis学习(十二)——mybatis逆向工程

    MyBatis Generator (MBG)是一个mabatis的代码生成器,能够根据表自动生成mapper接口,mapper.xml文件,javaBean文件. 1.MBG的下载 打开https: ...

  7. MyBatis逆向工程中domainObjectRenamingRule报错或无效

    使用domainObjectRenamingRule报错 在使用MyBatis逆向工程时报错如下: org.mybatis.generator.exception.XMLParserException ...

  8. MyBatis逆向工程生成配置 generator (生成pojo、mapper.xml、mapper.java)

    MyBatis逆向工程生成 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java.mapper.xml ...

  9. MyBatis框架之mybatis逆向工程自动生成代码

    http://www.jb51.net/article/82062.htm Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们 ...

随机推荐

  1. Be opinionated out of the box but get out of the way quickly as requirements start to diverge from

    Be opinionated out of the box but get out of the way quickly as requirements start to diverge from t ...

  2. lincode 题目记录5

    Course Schedule 安排课表   Frog Jump  最长回文字符串长度 Course Schedule 选课方案问题,题目说的很清楚了就是bfs或者dfs,然后加个字典优化,弄了好久没 ...

  3. day22笔记

    用户上传的文件要保存 保存在服务器上的media文件夹下,用户上传的文件很多,所以需要分目录进行存放具体步骤 settings.pyMEDIA_URL="/media/"MEDIA ...

  4. GIT团队合作探讨之三--使用分支

    这篇文章是一个作为对git branch的综合介绍.首先,我们会看看创建branch,这有点像是请求一个新的项目历史.然后,我们看看git checkout是如何能够被用来选择一个branch,最后看 ...

  5. SQL点点滴滴_常用函数

    该文章转载自http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html 别人的总结,很详细. 以下所有例子均Studnet表为例 ...

  6. STL算法分类记忆

    STL算法主要是我们强大的标准库中以迭代器或数值或函数对象为参数预先定义好的一系列算法操作. 在STL算法分类中首先要提的就是两个普遍存在的后缀: _if _copy 其中这两个后缀的作用分别是:一. ...

  7. Ngnix学习

  8. lua学习笔记之userdata

    这一段时间看了<programming in lua>中的第28章,看一遍并不是很难,但是只是朦胧的感觉,雾里看花,水中望月.最终还是决定敲出来自己看看,练练手,结果受益不少,也遇到了一些 ...

  9. 图的存储结构(邻接矩阵与邻接表)及其C++实现

    一.图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G=(V,E) 其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合. 注: 在线性表中,元素个数可以为零, ...

  10. Oracle Update语句

    Oracle没有update from语法,可以通过四种写法实现同样的功能: 一.标准update语法(常用.速度可能最慢) 当更新的表示单个或者被更新的字段不需要关联表带过来,此法是最好的选择. u ...