• mybatis逆向工程mbg


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

    mbg:mybatis generator=mybatis代码生成器

    1.看一下项目结构

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

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

    首先,编写一个dmscq.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>
    <!-- targetRuntime="MyBatis3":生成mybatis豪华框架,如果是MyBatis3Simple则生成简单框架 -->
      <context id="DB2Tables" targetRuntime="Mybatis3">
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/db_blog?allowMultiQueries=true"
            userId="root"
            password="5678">
        </jdbcConnection>
    
        <javaTypeResolver >
          <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
    
    <!-- 指定javabean的生成策略
    targetPackage:目标包名  targetProject:目标工程-->
        <javaModelGenerator targetPackage="com.atguigu.mybatis.bean" targetProject=".src">
          <property name="enableSubPackages" value="true" />
          <property name="trimStrings" value="true" />
        </javaModelGenerator>
    <!-- sqlMapGenerator:sql映射生成策略: -->
        <sqlMapGenerator targetPackage="com.atguigu.mybatis.dao"  targetProject=".conf">
          <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
    <!-- javaClientGenerator:指定mapper接口所在的位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.atguigu.mybatis.dao"  targetProject=".src">
          <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
    <!-- 指定要逆向分析哪些表:根据表要创建javaBean -->
        <table tableName="t_blogger" domainObjectName="Blogger"></table>
        <table tableName="t_dep" domainObjectName="Department"></table>
    
      </context>
    </generatorConfiguration>

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

    package com.atguigu.mybatis.test;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Test;
    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;
    
    import com.atguigu.mybatis.bean.Blogger;
    import com.atguigu.mybatis.bean.BloggerExample;
    import com.atguigu.mybatis.bean.BloggerExample.Criteria;
    import com.atguigu.mybatis.dao.BloggerMapper;
    
    
    public class MyBatisTest {
    
        public SqlSessionFactory getSqlSessionFactory() throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            return new SqlSessionFactoryBuilder().build(inputStream);
        }
    //生成代码根据配置文件 @Test
    public void runDmscq() throws Exception{ List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("dmscq.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); }
    //测试生成代码
    @Test
    public void getBloggerByExample() throws Exception { SqlSessionFactory sqlSessionFactory = getSqlSessionFactory(); SqlSession openSession = sqlSessionFactory.openSession(); BloggerMapper mapper = openSession.getMapper(BloggerMapper.class); //selectByExample:查询根据条件,条件为null则是查询所有。 /*List<Blogger> selectByExample = mapper.selectByExample(null); for (Blogger blogger : selectByExample) { System.out.println(blogger); }*/ //查询username中带e的并且profile中带e的 BloggerExample bloggerExample = new BloggerExample(); Criteria createCriteria = bloggerExample.createCriteria(); createCriteria.andUsernameLike("%e%"); createCriteria.andProfileLike("%e%"); /*List<Blogger> list = mapper.selectByExample(bloggerExample); for (Blogger blogger : list) { System.out.println(blogger); }*/ //如果加个条件,查询username中带e的并且profile中带e的,(或者sign中带c的) Criteria criteriaCriteria2 = bloggerExample.createCriteria(); criteriaCriteria2.andSignLike("%c%"); //和之前的条件进行拼装 bloggerExample.or(criteriaCriteria2); List<Blogger> blo = mapper.selectByExample(bloggerExample); for (Blogger blogger : blo) { System.out.println(blogger); } } }

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

  • 相关阅读:
    linux下python3环境安装(源码编译的方式安装)
    windows下docker安装(windows上安装docker比较鸡肋不推荐,还是建议在linux等系统上安装)
    序列化器嵌套的使用
    采用自定义模型字段代替序列化器嵌套的使用来返回我们想要的数据
    xadmin后台的安装及配置使用
    ORACLE检查找出损坏索引(Corrupt Indexes)的方法详解
    OGG相关操作
    ESXi挂载NFS共享存储
    第4步:创建RAC共享磁盘组
    Zabbix Server 配置微信报警
  • 原文地址:https://www.cnblogs.com/yunqing/p/8461194.html
Copyright © 2020-2023  润新知