mybatis 逆向工程

xiaoxiao2021-02-28  49

1.导包mybatis-generator-core-1.3.2.jar(下载地址)

2.在工程下创建一个mbg.xml文件(将下载的mybatis-generator-core-1.3.2/docs/configreference/xmlconfig.html网页里面的配置信息复制到mbg.xml)有参考的配置文件

3.将mbg.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="MyBatis3Simple" 生成简单版的CRUD MyBatis3:豪华版的CRUD --> <context id="DB2Tables" targetRuntime="MyBatis3"> <!-- jdbcConnection:指定如何连接到目标数据库 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/db_mybatis?allowMultiQueries=true" userId="hc" password="123456"> </jdbcConnection> <!-- javaTypeResolver:java类型解析器 --> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- javaModelGenerator:指定JavaBean的生成策略 targetPackage:目标包名 targetProject:目标工程 --> <javaModelGenerator targetPackage="com.mybatis.bean" targetProject=".\src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- sqlMapGenerator:sql映射生成策略 --> <sqlMapGenerator targetPackage="mybatis.mapper" targetProject=".\config"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- javaClientGenerator:指定mapper接口所在的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.mybatis.dao" targetProject=".\src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- table:指定要逆向分析哪些表:根据表要创建JavaBean tableName:数据库中存在的表 domainObjectName:生成JavaBean的类名 --> <table schema="DB2ADMIN" tableName="tb1_employee" domainObjectName="Employee"></table> <table tableName="tb1_dept" domainObjectName="Department"></table> </context> </generatorConfiguration>

4.运行测试类,自动生成JavaBean、Mapper接口、映射文件代码

package com.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.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; public class MybatisTestPlus { public SqlSessionFactory getSqlSessionFactory() throws IOException { InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); return new SqlSessionFactoryBuilder().build(inputStream); } @Test public void testMbg() throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("mbg.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); } }

5.在测试类新增如下代码

@Test public void testMybatis3() throws IOException { SqlSessionFactory sqlSessionFactory = getSqlSessionFactory(); SqlSession openSession = sqlSessionFactory.openSession(); try { EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class); // xxxExample封装查询条件 // 1.查询员工名字中有s字母的,和员工性别是1的 List<Employee> emps = mapper.selectByExample(null); for (Employee employee : emps) { System.out.println(employee.getId()); } // 封装员工查询条件的example EmployeeExample example = new EmployeeExample(); // 创建一个Criteria,这个Criteria就是拼接查询条件 // 拼接一个and条件 Criteria criteria = example.createCriteria(); criteria.andLastNameLike("%s%"); criteria.andGenderEqualTo("1"); // 拼接一个or条件 Criteria criteria2 = example.createCriteria(); criteria2.andEmailLike("%s%"); example.or(criteria2); List<Employee> list = mapper.selectByExample(example); for (Employee employee : list) { System.out.println(employee.getId()); } } finally { openSession.close(); } }

效果图:说明mybatis的逆向工程配置成功

转载请注明原文地址: https://www.6miu.com/read-2620305.html

最新回复(0)