侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

使用 MyBatis Generator 工具生成MyBatis相关类和Mapper文件2

2024-05-12 星期日 / 0 评论 / 0 点赞 / 75 阅读 / 8299 字

之前我写过一篇Blog说明了使用MyBatisGenerator工具,从配置文件generatorConfig.xml读取配置并生成可供MyBatis使用的对象和mapper文件。 Blog地址位于:

之前我写过一篇Blog说明了使用MyBatisGenerator工具,从配置文件generatorConfig.xml读取配置并生成可供MyBatis使用的对象和mapper文件。

Blog地址位于:http://my.oschina.net/Tsybius2014/blog/676973

今天我尝试了另一种方法生成对象和Mapper文件,即通过代码手工建立一个Configuration对象,并使用这个Configuration对象作为MyBatisGenerator的生成配置。

工程的结构和上篇Blog一致,我们只需要将main函数修改一下:

package GenMyBatisTest;import java.io.PrintWriter;import java.io.StringWriter;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.CommentGeneratorConfiguration;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.Context;import org.mybatis.generator.config.JDBCConnectionConfiguration;import org.mybatis.generator.config.JavaClientGeneratorConfiguration;import org.mybatis.generator.config.JavaModelGeneratorConfiguration;import org.mybatis.generator.config.JavaTypeResolverConfiguration;import org.mybatis.generator.config.ModelType;import org.mybatis.generator.config.SqlMapGeneratorConfiguration;import org.mybatis.generator.config.TableConfiguration;import org.mybatis.generator.internal.DefaultShellCallback;/** * MyBatisGenerator 学习 * @author Tsybius2014 * @date 2016年5月20日 * @time 下午11:50:31 * @remark */public class GenMyBatis {    public static void main(String[] args) {        try {            //数据库属性            String classPath = "E:/jars/mybatis-3.2.2/lib/ojdbc14-10.2.0.2.0.jar";            String jdbcDriver = "oracle.jdbc.driver.OracleDriver";            String jdbcUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";            String jdbcUser = "用户名";            String jdbcPassword = "密码";            List<String> warnings = new ArrayList<String>();            boolean overwrite = true;            //MyBatisGenerator需读取的配置类            Configuration config = new Configuration();            config.addClasspathEntry(classPath);            Context context = new Context(ModelType.CONDITIONAL);            context.setId("oracleGenTest");            context.setTargetRuntime("MyBatis3");            //commentGenerator            CommentGeneratorConfiguration comment = new CommentGeneratorConfiguration();            comment.addProperty("suppressDate", "true");            comment.addProperty("suppressAllComments", "true");            context.setCommentGeneratorConfiguration(comment);            //jdbcConnection            JDBCConnectionConfiguration jdbcCon = new JDBCConnectionConfiguration();            jdbcCon.setDriverClass(jdbcDriver);            jdbcCon.setConnectionURL(jdbcUrl);            jdbcCon.setUserId(jdbcUser);            jdbcCon.setPassword(jdbcPassword);            context.setJdbcConnectionConfiguration(jdbcCon);            //javaTypeResolver            JavaTypeResolverConfiguration javaTypeResolver =                 new JavaTypeResolverConfiguration();            javaTypeResolver.addProperty("forceBigDecimals", "false");            context.setJavaTypeResolverConfiguration(javaTypeResolver);            // javaModelGenerator 生成对象和Example类相关配置            JavaModelGeneratorConfiguration javaModel =                 new JavaModelGeneratorConfiguration();            javaModel.setTargetPackage("GenTarget.object_example_java");            javaModel.setTargetProject("src");            javaModel.addProperty("enableSubPackages", "true");            javaModel.addProperty("trimStrings", "true");            context.setJavaModelGeneratorConfiguration(javaModel);            // sqlMapGenerator 生成mapper.xml相关配置             SqlMapGeneratorConfiguration sqlMap = new SqlMapGeneratorConfiguration();            sqlMap.setTargetPackage("GenTarget.mapper_xml");            sqlMap.setTargetProject("src");            sqlMap.addProperty("enableSubPackages", "false");            context.setSqlMapGeneratorConfiguration(sqlMap);            // javaClientGenerator 生成mapper.java相关配置            JavaClientGeneratorConfiguration javaClient =                 new JavaClientGeneratorConfiguration();            javaClient.setTargetPackage("GenTarget.mapper_java");            javaClient.setTargetProject("src");            javaClient.setConfigurationType("XMLMAPPER");            javaClient.addProperty("enableSubPackages", "false");            context.setJavaClientGeneratorConfiguration(javaClient);            // table            TableConfiguration table = new TableConfiguration(context);            table.setTableName("game_record");            context.addTableConfiguration(table);            config.addContext(context);            DefaultShellCallback callback = new DefaultShellCallback(overwrite);            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);            myBatisGenerator.generate(null);            System.out.println("done.");        } catch (Exception ex) {            StringWriter stringWriter = new StringWriter();            PrintWriter printWriter = new PrintWriter(stringWriter);            ex.printStackTrace(printWriter);            System.out.println(stringWriter.toString());        }    }}

这段代码中配置与此properties和xml文件相同:

1、文件database.properties

#Mybatis Generator configuration  classPath=E:/jars/mybatis-3.2.2/lib/ojdbc14-10.2.0.2.0.jarjdbc_driver=oracle.jdbc.driver.OracleDriverjdbc_url=jdbc:oracle:thin:@127.0.0.1:1521:orcljdbc_user=操作人jdbc_password=登录密码

2、文件 generatorConfig.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>    <!-- 基础配置文件 -->    <properties resource="database.properties"/>      <!-- ojdbc14-10.2.0.2.0.jar 路径 -->    <classPathEntry location="${classPath}" />    <context id="oracleGenTest" targetRuntime="MyBatis3">        <commentGenerator>            <property name="suppressDate" value="true" />            <property name="suppressAllComments" value="true" />        </commentGenerator>        <jdbcConnection             driverClass="${jdbc_driver}"            connectionURL="${jdbc_url}"             userId="${jdbc_user}"            password="${jdbc_password}" />        <javaTypeResolver>            <property name="forceBigDecimals" value="false" />        </javaTypeResolver>        <!-- 生成对象和Example类相关配置 -->        <javaModelGenerator targetPackage="GenTarget.object_example_java"            targetProject="src">            <property name="enableSubPackages" value="true" />            <property name="trimStrings" value="true" />        </javaModelGenerator>        <!-- 生成mapper.xml相关配置 -->        <sqlMapGenerator targetPackage="GenTarget.mapper_xml"            targetProject="src">            <property name="enableSubPackages" value="false" />        </sqlMapGenerator>        <!-- 生成mapper.java相关配置 -->        <javaClientGenerator targetPackage="GenTarget.mapper_java"            targetProject="src" type="XMLMAPPER">            <property name="enableSubPackages" value="false" />          </javaClientGenerator>        <!-- 数据表 -->        <table tableName="game_record"></table>    </context></generatorConfiguration>

生成结果如下:

总结一下:

context作为上下文,每块大配置都是通过形如setXXX的函数赋入的配置类完成的。这些配置类的修改方法有两类,一类是addProperty增加键值对,另一类是setXXX函数完成赋值。

END

广告 广告

评论区