从命令行及java程序运行MyBatis Generator 1.3.x生成MyBatis3.x代码

近期因为项目需要,调研了myBatis 3.x的使用,当然,顺便也就研究了一下使用Generator来通过逆向工程生成pojo,mapper等文件。使用这个工具之前,要先下载相关的jar包,我使用的是最新的mybatis-generator-core-1.3.2.jar。
下面将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 >
  <context id="context1" >
    <jdbcConnection driverClass="com.mysql.jdbc.Driver" 
        connectionURL="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8"
        userId="root" 
        password="" />
    <javaModelGenerator targetPackage="com.lanx.test.domain" targetProject="/home/user/workspace/mybatis-web/src/main/java" />
    <sqlMapGenerator targetPackage="com.lanx.test.mapper" targetProject="/home/user/workspace/mybatis-web/src/main/resources/" />
    <javaClientGenerator targetPackage="com.lanx.test.mapper" type="XMLMAPPER" targetProject="/home/user/workspace/mybatis-web/src/main/java" />
     <table domainObjectName="Person" tableName="PERSON" enableCountByExample="false"
                enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false" >
        <property name="modelOnly" value="false"/>
    </table>   
  </context>
</generatorConfiguration>

我将这个xml文件放置在了项目根目录下,接下来参考的是一个类似官方的文档:
http://generator.sturgeon.mopaas.com/running/runningFromCmdLine.html
从命令行运行 MyBatis Generator
按照文档中所说,执行:

java -jar /home/user/backup/mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml
出现下列错误:
Exception in thread "main" java.lang.RuntimeException: Exception getting JDBC Driver
        at org.mybatis.generator.internal.db.ConnectionFactory.getDriver(ConnectionFactory.java:85)
        at org.mybatis.generator.internal.db.ConnectionFactory.getConnection(ConnectionFactory.java:54)
        at org.mybatis.generator.config.Context.getConnection(Context.java:526)
        at org.mybatis.generator.config.Context.introspectTables(Context.java:436)
        at org.mybatis.generator.api.MyBatisGenerator.generate(MyBatisGenerator.java:222)
        at org.mybatis.generator.api.ShellRunner.main(ShellRunner.java:117)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:344)
        at org.mybatis.generator.internal.ObjectFactory.internalClassForName(ObjectFactory.java:150)
        at org.mybatis.generator.internal.ObjectFactory.externalClassForName(ObjectFactory.java:121)
        at org.mybatis.generator.internal.db.ConnectionFactory.getDriver(ConnectionFactory.java:82)
        ... 5 more

其实在运行前就已经估计到了,显然并没有引入mysql的驱动程序jar包,修改后的语句如下:

java -cp /home/user/backup/mybatis-generator-core-1.3.2.jar:/home/user/backup/mysql-connector-java-5.1.36.jar org.mybatis.generator.api.ShellRunner -configfile generatorConfig.xml

运行后,顺利生成了pojo等文件,要注意generatorConfig.xml文件中javaModelGenerator等几个节点targetProject属性的配置,在这里我都写了绝对路径。实际上,如果此配置出错,书写了不存在的文件夹,会出现警告提示。

而使用java程序运行MyBatis Generator 1.3.x,直接copy此网站上给出的代码即可。
参考url如下:http://generator.sturgeon.mopaas.com/running/runningWithJava.html

最后,我的开发环境:ubuntu kylin + eclipse-Luna-SR2 + jdk8

时间: 2024-11-05 18:35:32

从命令行及java程序运行MyBatis Generator 1.3.x生成MyBatis3.x代码的相关文章

IT忍者神龟之命令行执行java程序

第一:简单的命令行(没有package) c:/temp/bin/GetGreeting.java [java] view plaincopy public class GetGreeting { public static void main(String [] args) { System.out.println("Hello world"); } } 1.编译:cmd--cd到c:/temp/bin  javac GetGreeting.java 生成GetGreeting.cl

ubuntu命令行下java工程编辑与算法(第四版)环境配置

ubuntu命令行下java工程编辑与算法(第四版)环境配置 java 命令行 javac java 在学习算法(第四版)中的实例时,因需要安装配套的java编译环境,可是在编译java文件的时候总是出各种错误,特在此总结一下. ubuntu下java环境配置 由于网上教程比较多,而且也较全面,特此摆放一个链接,跟着此教程总就可以配置好oracle的java jdk,如果想更加省事,直接在命令行下键入java,会提示安装各种开源java jdk,只需要一个命令即可: sudo apt-get i

用命令行编译java并生成可执行的jar包

用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: package test; import java.awt.*; import javax.swing.*; //更多包的导入... class NotePadFrame extends JFrame { //主界面的设计... } //其他相关代码... public class CardLayo

Java程序运行机制及运行过程

Java运行机制 Java虚拟机(Java Virtual Machine):Java虚拟机可以理解成一个以字节码为机器指令的CPU:对于不同的运行平台,有不同的虚拟机:Java虚拟机机制屏蔽了底层运行平台的差别,真正实现了“一次编译,随处运行”. Java垃圾回收(Garbage Collection):不用使用的内存空间应该回收:在C/C++等语言中,由程序员负责回收无用的内存:Java语言消除了程序员回收无用内存的职 责,它提供一种系统级线程跟踪存贮空间的分配情况,并在JVM空闲的时候,检

java学习总结(16.05.08)在windows下使用cmd命令行对java文件进行编译和执行

windows下利用cmd命令行可以调用jdk里的javac.exe和java.exe对java文件进行编译和执行,前提是jdk已成功安装并正确配置相关环境变量(jdk安装与环境变量的配置方法:http://blog.csdn.net/qq_32099621/article/details/51339868) 下面来说一下windows下如何使用cmd命令行来编译执行java文件 首先找到需要编译和执行的java文件 这里我要编译和执行这个java文件 按组合键win+r调出"运行",

【转帖】windows命令行中java和javac、javap使用详解(java编译命令)

windows命令行中java和javac.javap使用详解(java编译命令) 更新时间:2014年03月23日 11:53:15   作者:    我要评论 http://www.jb51.net/article/48380.htm 学习一下java 最近重新复习了一下java基础,这里便讲讲对于一个类文件如何编译.运行.反编译的.也让自己加深一下印象 如题,首先我们在桌面,开始->运行->键入cmd 回车,进入windows命令行.进入如图所示的画面: 可知,当前默认目录为C盘User

java程序运行原理

一.JRE.JDK.JVM 要了解java程序运行原理,首先需要了解知道jre.jdk.jvm这三者是什么,他们之间又有什么联系. JRE(JavaRuntimeEnvironment,Java运行环境),也就是Java平台.所有的Java 程序都要在JRE下才能运行. JDK(Java Development Kit,java开发工具包)是程序开发者用来来编译.调试java程序用的开发工具包.JDK的工具也是Java程序,也需要JRE才能运行.为了保持JDK的独立性和完整性,在JDK的安装过程

Java程序运行时的几个区域

Java运行时涉及到的区域 几个基本概念: 1.Java对象     2.Java方法    3.一个编译好的类,以class文件的形式出现 4.Java的本地方法   5.线程私有和线程共有 一.方法区(永久代) 和 堆(heap) 这两个区域是线程共有的,供所有线程使用.所以,对存放在这两个地方的资源进行操作时,如果是程序是多线程的,那么要考虑同步. 方法区存放的是类的类型信息.类的类型信息有,类的静态变量,其它从class文件中读取到的信息. 当用户访问一个类的静态方法或者类的静态变量,或

java程序运行分析

使用工具:Eclipse Stardard 4.32版本(window7环境) 今天我们通过一个及其简单的例子来分析一个java程序是如何在我们的及其上跑起来的.部分内容是参考其他人的,会在参考的地方注明. 我的测试代码部分如下: public class Test { public static void main(String[] args) { new Test(); Int test =1;//只是为了测试方便,去掉IO部分的分析 } } 就是这么简单的代码,如何在我们的机器上跑起来,确