使用Mybatis Generator自动生成Mybatis相关代码
[size=medium]本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码:
一、构建一个环境:
1. 首先创建一个表:
Sql代码
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
insert into pet values('Fluffy', 'Harold', 'cat', 'f', '1993-02-04', null); insert into pet values('Claws', 'Gwen', 'cat', 'm', '1994-03-17', null); insert into pet values('Buffy', 'Harold', 'dog', 'f', '1989-05-13', null); insert into pet values('Fang', 'Benny', 'dog', 'm', '1990-08-27', null); insert into pet values('Bowser', 'Diane', 'dog', 'm', '1979-08-31', '1995-07-29'); insert into pet values('Chirpy', 'Gwen', 'bird', 'f', '1998-09-11', null); insert into pet values('Whistler', 'Gwen', 'bird', null, '1997-12-09', null); insert into pet values('Slim', 'Benny', 'snake', 'm', '1996-04-29', null);
<?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="mysql-connector-java-5.1.6-bin.jar" /> <!-- 包要绝对路径--!> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true" /> </commentGenerator> <jdbcConnection driver connectionURL="jdbc:mysql://localhost/test" userId="qgd" password="123456"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <javaModelGenerator targetPackage="test.model" targetProject="../src/main/java"> <!-- 存放目录--!写绝对路径> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="test.dao" targetProject="../src/main/java"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="../src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <table tableName="pet" domainObjectName="Pet"> </table> </context> </generatorConfiguration>
java -jar mybatis-generator-core-1.3.0.jar -configfile ../src/main/resource/config.xml -overwrite注意后面不可以加分号!
<?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="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost/test" /> <property name="username" value="qgd" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <mapper resource="test/dao/PetMapper.xml" /> </mappers> </configuration>
package test; import java.io.Reader; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import test.dao.PetMapper; import test.model.Pet; import test.model.PetExample; 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(); PetExample pet = new PetExample(); pet.or().andDeathIsNotNull(); try { PetMapper mapper = sqlSession.getMapper(PetMapper.class); List<Pet> allRecords = mapper.selectByExample(pet); for (Pet s : allRecords) System.out.println(s); } finally { sqlSession.close(); } } }