maven所需要依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.6</version>
</dependency>
<build>
<plugins>
<!-- mybatis-generator自动生成代码插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
</plugin>
</plugins>
<build>
generationConfig.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> <context id="mybatisGenerator" targetRuntime="MyBatis3" defaultModelType="flat"> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="false" /> </commentGenerator> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@ip:1521:gbksl" userId="用户名" 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="com.example.pojo" targetProject="src/main/java/"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/java/"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" targetProject="src/main/java/"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 指定数据库表 --> <table schema="treatReserverManage" tableName="PATIENT"></table> <!-- 有些表的字段需要指定java类型 <table schema="" tableName=""> <columnOverride column="" javaType="" /> </table> --> </context> </generatorConfiguration>
创建generationConfigRun .java文件
package com.example; 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 java.io.File; import java.util.ArrayList; import java.util.List; public class generationConfigRun { public static void main(String[] args) throws Exception{ try{ generationConfigRun generationConfigRun = new generationConfigRun(); generationConfigRun.fenerator(); }catch (Exception e){ e.printStackTrace(); } } public void fenerator() throws Exception{ List<String> warn = new ArrayList<String>(); boolean overariter = true; //指定逆向工程配置文件 File configFile = new File("src/main/java/generationConfig.xml");//generationConfigRun ConfigurationParser parser = new ConfigurationParser(warn); Configuration config = parser.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overariter); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback,warn); myBatisGenerator.generate(null); } }
使用事例
import java.util.List; @Service public class TestServiceImpl implements TestService { @Autowired public PatientMapper patientMapper; @Override public List<Patient> getAll() { PatientExample patientExample = new PatientExample(); patientExample.createCriteria().andNameIsNotNull(); List<Patient> list =patientMapper.selectByExample(patientExample); System.out.println(list.size()); return list; } }