当前位置: 代码迷 >> Web前端 >> 运用Mybatis Generator包自动生成Mybatis相关内容
  详细解决方案

运用Mybatis Generator包自动生成Mybatis相关内容

热度:216   发布时间:2012-08-24 10:00:20.0
使用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 driverClass="oracle.jdbc.driver.OracleDriver"
            connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" userId="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集成
  相关解决方案