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