mybatis開發 —— 快速生成開發程式碼
阿新 • • 發佈:2020-07-31
一,mybatis example 形式程式碼
編寫 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="D:\software\lib\mysql-connector-java-5.1.21.jar" /> --> <classPathEntry location="C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- 資料庫連結URL、使用者名稱、密碼 --> <!-- <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/sy" userId="sypro" password="sypro"> --> <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" userId="msa" password="msa"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成模型的包名和位置 --> <javaModelGenerator targetPackage="sy.model" targetProject="D:\study\mybatis\src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成的對映檔案包名和位置 --> <sqlMapGenerator targetPackage="sy.mapping" targetProject="D:\study\mybatis\src"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 生成DAO的包名和位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="sy.dao" targetProject="D:\study\mybatis\src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 要生成那些表(更改tableName和domainObjectName就可以) --> <table tableName="tbug" domainObjectName="Bug" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> </context> </generatorConfiguration>
配置好上述檔案之後,開啟CMD命令列 ,java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
連結: https://pan.baidu.com/s/1aXR9dd_DfHAHG-86ipCxrA 提取碼: k7bp
記得這些檔案需要放在沒有中文的資料夾路徑,否則會報錯,上述的src資料夾,為generator.xml配置的src位置。這樣子即可一鍵生成mapper,model,example的程式碼。
二,mybatisplusWrapper condition形式程式碼
pom引入需要的包
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-support</artifactId> <version>2.3.3</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency>
package com.infore.saas.filepreview; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.rules.DbType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; /** * 程式碼生成器 * ps:只需要配置前面的靜態引數,即可生成程式碼 */ public class MpGenerator { /** * mysql IP */ private static String MYSQL_IP = "127.0.0.1"; /** * mysql 埠 */ private static String MYSQL_PORT = "3306"; /** * mysql 資料庫名稱 */ private static String MYSQL_DATABASE = "demo"; /** * mysql 表名稱 */ private static String MYSQL_TABLE_NAME = "student"; /** * mysql 使用者名稱 */ private static String MYSQL_USER_NAME = "root"; /** * mysql 密碼 */ private static String MYSQL_USER_PASSWORD = "123456"; /** * 包名 */ private static String JAVA_PACKAGE_NAME = "com.lawliet.system"; /** * 生成檔案地址 */ private static String FILE_ADDRESS = "D:\\code"; /** * 作者名稱 */ private static String AUTHOR_NAME = "Lawliet"; /** * 業務類是否以I開頭 */ private static boolean JAVA_SERVICE_NAME_START_WITH_I = false; /** * 生成原始碼方法 * * @param serviceNameStartWithI 業務類是否以I開頭 * @param packageName 包名 * @param tableNames 表名 */ private void generateByTables(boolean serviceNameStartWithI, String packageName, String... tableNames) { GlobalConfig config = new GlobalConfig(); String dbUrl = String.format("jdbc:mysql://%s:%s/%s", MYSQL_IP, MYSQL_PORT, MYSQL_DATABASE); DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setDbType(DbType.MYSQL) .setUrl(dbUrl) .setUsername(MYSQL_USER_NAME) .setPassword(MYSQL_USER_PASSWORD) .setDriverName("com.mysql.jdbc.Driver"); StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig .setCapitalMode(true) .setEntityLombokModel(false) .setDbColumnUnderline(true) .setNaming(NamingStrategy.underline_to_camel) .setInclude(tableNames);//修改替換成你需要的表名,多個表名傳陣列 config.setActiveRecord(false) .setAuthor(AUTHOR_NAME) .setOutputDir(FILE_ADDRESS) .setFileOverride(true) .setEnableCache(false)// XML 二級快取 .setBaseResultMap(true)// XML ResultMap .setBaseColumnList(true)// XML columList ; if (!serviceNameStartWithI) { config.setServiceName("%sService"); } new AutoGenerator().setGlobalConfig(config) .setDataSource(dataSourceConfig) .setStrategy(strategyConfig) .setPackageInfo( new PackageConfig() .setParent(packageName) //.setController("controller") .setEntity("model") ).execute(); } /** * 完成上面引數配置即可執行該main方法生成原始碼 */ public static void main(String[] args) { System.out.println("-- 服務啟動,正在初始化...."); new MpGenerator().generateByTables(JAVA_SERVICE_NAME_START_WITH_I, JAVA_PACKAGE_NAME, MYSQL_TABLE_NAME); System.out.println("-- " + MYSQL_TABLE_NAME + "相關的mapper,model,service生成成功。"); } }
mybatisplus 更加簡單,將上述程式碼進行main函式執行即可生成各個模組的程式碼。