最近项目要用到mybatis中间件,中间涉及到要对表结构生成bean,dao,和sqlconfig.xml 所以记录一下学习过程
首先是准备工作,即准备需要的jar包:我们的数据库mysql,所以驱动用的mysql-connector-java-5.1.25-bin.jar 另外还需要 mybatis的jar包: mybatis-3.0.5-SNAPSHOT.jar
及自动生成的jar包:mybatis-generator-core-1.3.2.jar ....这些都可以到网上下载。。。
我首先是测试这个自动生成功能,所以没直接在项目里配置,而是先在 f盘测试了一下: 将三个jar包放入F: estlib下
其次是准备generatorconfig.xml ,将此文件直接放到F: est 下。 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>
<classPathEntry location="mysql-connector-java-5.1.25-bin.jar" />
<context id="mysql" targetRuntime="MyBatis3">
<!--配置数据库链接-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test?characterEncoding=utf8" userId="root"
password="20114267">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--配置实体bean-->
<javaModelGenerator targetPackage="xmlParer"
targetProject="F: estxmlParer">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--配置实体map接口(dao)-->
<sqlMapGenerator targetPackage="xmlParer"
targetProject="F: estxmlParer">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--配置实体bean的sql.xml-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="xmlParer"
targetProject="F: estxmlParer">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--配置实体-->
<table tableName="user" domainObjectName="User">
</table>
</context>
</generatorConfiguration>
因为是简单的测试,所以我的bean和dao及xml 都放到了统一的目录下了。。。F: estxmlParer
最后 在cmd命令行 执行
将目录切换到 F: estlib 下
java -jar mybatis-generator-core-1.3.2.jar -configfile F: estgeneratorconfig.xml -overwrite
这样基本就ok了
后来还研究了一下 在java的main方法去执行。也ok
今天把上次main方法读取配置 自动生成bean,及map的代码复制过来 供大家参考
首先先建立一个WEB工程,在lib下导入相应的包,src下建立相应的包
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
public class test {
public static void main(String[] args) {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("src/generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config;
try {
config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator;
try {
myBatisGenerator = new MyBatisGenerator(config, callback,
warnings);
myBatisGenerator.generate(null);
} catch (Exception e) {
e.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XMLParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这样就更方便自动生成代码了