MyBatis Generator:
简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件、接口、以及bean类。支持基本的增删改查,以及QBC风格的条件查询。但是表连接、存储过程等这些复杂sql的定义需要我们手工编写。
所需jar包:
在MyBatis的网站上找:https://github.com/mybatis/generator/releases下载generator的jar包mybatis-generator-core-1.3.5.jar。
分别建包后:
建一个逆向工程所需的配置文件mbg.xml:放在项目路径下
<!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="simple" targetRuntime="MyBatis3Simple"> <!--jdbcConnection:指定如何连接到目标数据库--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis_sgg?allowMultiQueries=true" userId="root" password="root"/> <!--java类型解析器--> <!--<javaTypeResolver></javaTypeResolver>--> <!--javaModelGenerator:指定Javabean的生成策略 targetPackage:目标包名 targetProject:目标工程 --> <javaModelGenerator targetPackage="com.atguigu.mybatis.bean" targetProject=".src"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!--sqlMapGenerator:sql映射(mapper.xml)生成的策略 targetProject:生成在当前工程 --> <sqlMapGenerator targetPackage="com.atguigu.mybatis.dao" targetProject=".conf"/> <!--javaClientGenerator:指定mapper接口所在的位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.atguigu.mybatis.dao" targetProject=".src"/> <!--指定要逆向分析哪些表,根据表要创建Javabean --> <table tableName="tbl_dept" domainObjectName="Department"/> <table tableName="tbl_employee" domainObjectName="Employee"/> </context> </generatorConfiguration>
写一个测试类,生成所需代码:
@Test public void test() throws IOException, XMLParserException { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("mbg.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = null; try { config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } catch (Exception e) { e.printStackTrace(); } }
各包下面生成所需代码。
MyBatis还有其他的逆向工程方法,具体可以参考网址:http://mybatis.org/generator/index.html