最近项目要用到mybatis中间件,中间涉及到要对表结构生成bean,dao,和sqlconfig.xml 所以记录一下学习过程
首先是准备工作,即准备需要的jar包:我们的数据库mysql,所以驱动用的mysql-connector-5.1.8.jar 另外还需要 mybatis的jar包: mybatis-3.0.5-SNAPSHOT.jar
及自动生成的jar包:mybatis-generator-core-1.3.2.jar ....这些都可以到网上下载。。。
我首先是测试这个自动生成功能,所以没直接在项目里配置,而是先在 d盘测试了一下: 将三个jar包放入D: estlib下
其次是准备generatorconfig.xml ,将此文件直接放到D: 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="lib/mysql-connector-5.1.8.jar" /> <context id="MySqlTables" targetRuntime="MyBatis3"> <!--配置数据库链接--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/abcProject?characterEncoding=utf8" userId="root" password="11112222"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!--配置实体bean--> <javaModelGenerator targetPackage="xmlParer" targetProject="D: estxmlParer"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!--配置实体map接口(dao)--> <sqlMapGenerator targetPackage="xmlParer" targetProject="D: estxmlParer"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!--配置实体bean的sql.xml--> <javaClientGenerator type="XMLMAPPER" targetPackage="xmlParer" targetProject="D: estxmlParer"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!--配置实体--> <table tableName="abc_agency" domainObjectName="Agency"> </table> </context> </generatorConfiguration>
因为是简单的测试,所以我的bean和dao及xml 都放到了统一的目录下了。。。D: estxmlParer
最后 在cmd命令行 执行
将目录切换到 D: estlib 下
java -jar mybatis-generator-core-1.3.0.jar -configfile D: estgeneratorconfig.xml -overwrite
这样基本就ok了。。。后来还研究了一下 在java的main方法去执行。。。也ok
今天把上次main方法读取配置 自动生成bean,及map的代码复制过来 供大家参考
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 AutoMybatis { /** * @param args */ 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(); } } }
这样就更方便自动生成代码了
原帖地址:http://blog.csdn.net/thunder0709/article/details/7919343