读书人

运用Mybatis Generator包自动生成Myba

发布时间: 2012-08-24 10:00:20 作者: rapoo

使用Mybatis Generator包自动生成Mybatis相关内容
1.环境 mybatits+oracle
准备工作:
ojdbc5.jar
mybatis-generator-core-1.3.1.jar
mybatis-3.1.0-SNAPSHOT.jar
2.新建一web工程
src目录新建包com.sm.dao/model
文件:generator.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="E:\myspace\sm\WebContent\WEB-INF\lib\ojdbc5.jar" />    <context id="DB2Tables" targetRuntime="MyBatis3">        <commentGenerator>            <property name="suppressDate" value="true" />        </commentGenerator>        <jdbcConnection driveruserId="hr" password="123456">        </jdbcConnection>        <javaTypeResolver>            <property name="forceBigDecimals" value="false" />        </javaTypeResolver>        <javaModelGenerator targetPackage="com.sm.model" targetProject="../src">            <property name="enableSubPackages" value="true" />            <property name="trimStrings" value="true" />        </javaModelGenerator>        <sqlMapGenerator targetPackage="com.sm.model" targetProject="../src">            <property name="enableSubPackages" value="true" />        </sqlMapGenerator>        <javaClientGenerator type="XMLMAPPER"            targetPackage="com.sm.dao" targetProject="../src">            <property name="enableSubPackages" value="true" />        </javaClientGenerator>        <table tableName="t_user" domainObjectName="User">          </table> <table tableName="t_rolemap" domainObjectName="Rolemap">          </table>                 <table tableName="t_role" domainObjectName="Role">          </table>                 <table tableName="t_extrafield" domainObjectName="Extrafield">          </table>                 <table tableName="regions" domainObjectName="Regions">          </table>                 <table tableName="manager" domainObjectName="Manager">          </table>                 <table tableName="locations" domainObjectName="Locations">          </table>                 <table tableName="job_history" domainObjectName="Job_history">          </table>                 <table tableName="jobs" domainObjectName="Jobs">          </table> <table tableName="employees" domainObjectName="Employees">          </table>                <table tableName="departments" domainObjectName="Departments">          </table>                 <table tableName="countries" domainObjectName="Countries">          </table>      </context></generatorConfiguration>


这里有必要把上面的xml 标签介绍一下
* 其中classPathEntry 是引用的jdbc的类路径,这里将jdbc jar和generator的jar包放在一起了;(我在测试的时候使用相对路径出现了问题,后就使用绝对路径)
* commentGenerator 是用来除去时间信息的,这在配合类似subversion的代码管理工具时使用很有效,因为可以减少没有必要的注释迁入;
* jdbcConnection是指定的jdbc的连接信息;
* javaTypeResolver式类型转换的信息,这里并没有用到;
* javaModelGenerator是模型的生成信息,这里将指定这些Java model类的生成路径;
* sqlMapGenerator是mybatis 的sqlMapper XML文件的生成信息,包括生成路径等;
* javaClientGenerator是应用接口的生成信息;
* table是用户指定的被生成相关信息的表,它必须在指定的jdbc连接中已经被建立。


MapperConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>  <!DOCTYPE configuration       PUBLIC "-//mybatis.org//DTD Config 3.0//EN"       "http://mybatis.org/dtd/mybatis-3-config.dtd">  <configuration>   <environments default="development">          <environment id="development">              <transactionManager type="JDBC" />              <dataSource type="POOLED">                  <property name="driver" value="oracle.jdbc.driver.OracleDriver" />                  <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" />                  <property name="username" value="hr" />                  <property name="password" value="123456" />              </dataSource>          </environment>      </environments>      <mappers>          <mapper resource="com/sm/model/UserMapper.xml" />          <mapper resource="com/sm/model/ManagerMapper.xml" />      </mappers>  </configuration>


2.导入如上3个java包;
3.运行mybatis-generator 最简单的就是命令行的方式,只需要指定相应的配置文件的路径即可:
java -jar mybatis-generator-core-1.3.0.jar -configfile ../src/main/resource/config.xml -overwrite 


下面是我的代码(同样使用相对路径报错)
E:\myspace\sm\src>java -jar  E:\myspace\sm\WebContent\WEB-INF\lib\mybatis-generator-core-1.3.1.jar  -configfile generator.xml -overwrite 

4 验证代码,新建一个Test.java 如代如下


package com.sm.test;/** * @author rabbit <hackpor@hp009.com> * @version * @since Ver 1.1 * @Date Feb 8, 2012 10:05:26 AM */public class Test {public static void main(String[] args) throws Exception {String resource = "MapperConfig.xml";Reader reader = Resources.getResourceAsReader(resource);SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);SqlSession sqlSession = sqlMapper.openSession();UserExample user = new UserExample();user.or().andAccountIsNotNull();ManagerExample managerExa = new ManagerExample();managerExa.or().andAgeIsNotNull();try {UserMapper uMapper = sqlSession.getMapper(UserMapper.class);List<User> allRecords = uMapper.selectByExample(user);for (User s : allRecords) {System.out.println(s.getAccount() + "," + s.getPassword() + ","+ s.getStatus() + "," + s.getRegtime());}ManagerMapper mMapper = sqlSession.getMapper(ManagerMapper.class);List<Manager> managerRec = mMapper.selectByExample(managerExa);for (Manager s : managerRec) {System.out.println(s.getUserid().toString() + ","+ s.getUsername() + "," + s.getAge());}} finally {sqlSession.close();}}}


5.结果如下
scott,123456,1,Fri Jun 17 00:00:00 CST 2011
tomcat,123456,null,Fri Jun 17 00:00:00 CST 2011
java,java,null,Fri Jun 17 00:00:00 CST 2011
11,hackpro,28
1450,aaa,11
1551,ccc,22
1550,bb,11
1,admin,20
2,tomcat,19
16,javaeye,10

明天研究springMVC和mybatis集成

读书人网 >Web前端

热点推荐