快捷搜索:  汽车  科技

mybatis代码生成器源码(Mybatis-Generator自动生成代码)

mybatis代码生成器源码(Mybatis-Generator自动生成代码)

mybatis代码生成器源码(Mybatis-Generator自动生成代码)(1)

<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-Java</artifactId> <version>5.1.34</version> </dependency> <dependency> <groupId>org.myBatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> </dependencies>

mybatis代码生成器源码(Mybatis-Generator自动生成代码)(2)

public class GeneratorXs { public static void main(String[] args) throws Exception { Properties pro = new Properties(); InputStream inputStream = FileUtil.class.getClassLoader().getResourceAsStream("generatorForIDEA.properties"); if(inputStream != null) pro.load(inputStream); String defaultPath = "D:/generatorDir"; String path = pro.getProperty("xs.gen.config.pojo.model.project" defaultPath); System.out.println("*********path=" path); File file = new File(path); if (!file.exists()) { file.mkdirs(); } //MBG 执行过程中的警告信息 List<String> warnings = new ArrayList<String>(); //当生成的代码重复时,覆盖原代码 boolean overwrite = true; //读取我们的 MBG 配置文件 InputStream is = Surrogate.Generator.class.getResourceAsStream("/generatorXs.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(is); is.close(); DefaultShellCallback callback = new DefaultShellCallback(overwrite); //创建 MBG MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config callback warnings); //执行生成代码 myBatisGenerator.generate(null); //输出警告信息 for (String warning : warnings) { System.out.println(warning); } System.out.println("********* 结束"); } }

public class CommentGeneratorXs extends DefaultCommentGenerator { private boolean addRemarkComments = false; /** * 设置用户配置的参数 */ @Override public void addConfigurationProperties(Properties properties) { super.addConfigurationProperties(properties); this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments")); } /** * 给字段添加注释 */ @Override public void addFieldComment(Field field IntrospectedTable introspectedTable IntrospectedColumn introspectedColumn) { String remarks = introspectedColumn.getRemarks(); //根据参数和备注信息判断是否添加备注信息 if(addRemarkComments && StringUtility.stringHasValue(remarks)){ //文档注释开始 field.addJavaDocLine("/**"); //获取数据库字段的备注信息 String[] remarkLines = remarks.split(System.getProperty("line.separator")); for(String remarkLine:remarkLines){ field.addjavaDocLine(" * " remarkLine); } addJavadocTag(field false); field.addJavaDocLine(" */"); } } }

<?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> <properties resource="generatorForIDEA.properties"></properties> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator type="com.yaoex.dcso.CommentGeneratorXs"> <!-- 是否去除自动生成的注释 true 是--> <property name="suppressAllComments" value="true" /> <!--输出表和列的注释--> <property name="addRemarkComments" value="true" /> <property name="suppressDate" value="true" /> </commentGenerator> <!-- 数据库链接URL、用户名、密码 --> <jdbcConnection driverClass="${dataSource.driverClassName}" connectionURL="${dataSource.url}" userId="${dataSource.username}" password="${dataSource.password}"> <!--<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="${gen.config.pojo.model.package}" targetProject="${xs.gen.config.pojo.model.project}"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成的映射文件包名和位置 --> <sqlMapGenerator targetPackage="${gen.config.sqlmap.package}" targetProject="${xs.gen.config.pojo.model.project}"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 生成DAO的包名和位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="${gen.config.java.client.package}" targetProject="${xs.gen.path}"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 要生成那些表(更改tableName和domainObjectName就可以) --> <table tableName="enterprise" domainObjectName="EnterprisePO" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" > <!--是否使用数据库的列名作为属性名,选择false则为驼峰 --> <property name="useActualColumnNames" value="false" /> <!--添加该句话则可以在插入时返回id值 identity为true时order为after 为false时为before--> <!--<generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()" identity="true"></generatedKey>--> </table> </context> </generatorConfiguration>

${gen.config.pojo.model.package}

这种 自己配置下 properties

猜您喜欢: