|
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集成 |
|
|