本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码:
一、构建一个环境:
1. 首先创建一个表:
-
CREATETABLEpet(nameVARCHAR(20),ownerVARCHAR(20),speciesVARCHAR(20),sexCHAR(1),birthDATE,deathDATE);
2. 然后注入数据
-
insertintopetvalues('Fluffy','Harold','cat','f','1993-02-04',null);
-
insertintopetvalues('Claws','Gwen','cat','m','1994-03-17',null);
-
insertintopetvalues('Buffy','Harold','dog','f','1989-05-13',null);
-
insertintopetvalues('Fang','Benny','dog','m','1990-08-27',null);
-
insertintopetvalues('Bowser','Diane','dog','m','1979-08-31','1995-07-29');
-
insertintopetvalues('Chirpy','Gwen','bird','f','1998-09-11',null);
-
insertintopetvalues('Whistler','Gwen','bird',null,'1997-12-09',null);
-
insertintopetvalues('Slim','Benny','snake','m','1996-04-29',null);
注:这里的sql例子来自 http://dev.mysql.com/doc/refman/5.5/en/creating-tables.html
3. 在 Mybatis 主页 http://code.google.com/p/mybatis/ 上下载 Mybatis mybatis-generator-core [本文使用的是 1.3.0 版本]。当然运行 mybatis-generator 生成的代码还需要下载 mybatis 的 jar 包[本例使用的是 3.0.2 版本],和相关数据库的 jdbc [本文中使用的是MySql的jdbc] 。
二、运行 mybatis-generator
1. 要运行 generator ,需要给 generator 提供一个配置文件,指定其生成的数据库的相关信息。
以下是一个示例:
-
<?xmlversion="1.0"encoding="UTF-8"?>
-
<!DOCTYPEgeneratorConfiguration
-
PUBLIC"-//mybatis.org//DTDMyBatisGeneratorConfiguration1.0//EN"
-
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
-
-
<generatorConfiguration>
-
<classPathEntrylocation="mysql-connector-java-5.1.6-bin.jar"/>
-
-
<contextid="DB2Tables"targetRuntime="MyBatis3">
-
-
<commentGenerator>
-
<propertyname="suppressDate"value="true"/>
-
</commentGenerator>
-
-
<jdbcConnectiondriverClass="com.mysql.jdbc.Driver"
-
connectionURL="jdbc:mysql://localhost/test"userId="qgd"password="123456">
-
</jdbcConnection>
-
-
<javaTypeResolver>
-
<propertyname="forceBigDecimals"value="false"/>
-
</javaTypeResolver>
-
-
<javaModelGeneratortargetPackage="test.model"
-
targetProject="../src/main/java">
-
<propertyname="enableSubPackages"value="true"/>
-
<propertyname="trimStrings"value="true"/>
-
</javaModelGenerator>
-
-
<sqlMapGeneratortargetPackage="test.dao"
-
targetProject="../src/main/java">
-
<propertyname="enableSubPackages"value="true"/>
-
</sqlMapGenerator>
-
-
<javaClientGeneratortype="XMLMAPPER"
-
targetPackage="test.dao"targetProject="../src/main/java">
-
<propertyname="enableSubPackages"value="true"/>
-
</javaClientGenerator>
-
-
<tabletableName="pet"domainObjectName="Pet">
-
</table>
-
-
</context>
-
</generatorConfiguration>
这个配置文件提供了 mybatis-generator所需要的参数信息:
* 其中classPathEntry 是引用的jdbc的类路径,这里将jdbc jar和generator的jar包放在一起了;
* commentGenerator 是用来除去时间信息的,这在配合类似subversion的代码管理工具时使用很有效,因为可以减少没有必要的注释迁入;
* jdbcConnection是指定的jdbc的连接信息;
* javaTypeResolver式类型转换的信息,这里并没有用到;
* javaModelGenerator是模型的生成信息,这里将指定这些Java model类的生成路径;
* sqlMapGenerator是mybatis 的sqlMapper XML文件的生成信息,包括生成路径等;
* javaClientGenerator是应用接口的生成信息;
* table是用户指定的被生成相关信息的表,它必须在指定的jdbc连接中已经被建立。
2. mybatis-generator 有多种运行方式,最简单的就是命令行的方式,只需要指定相应的配置文件的路径即可:
-
java-jarmybatis-generator-core-1.3.0.jar-configfile../src/main/resource/config.xml-overwrite
运行后生成的代码包括模型类 test.model.Pet 和 test.model.PetExample , test.dao.PetMapper 接口以及其相对应的 xml 映射文件,在这里就不在赘述了。
三、使用 mybatis-generator 生成的代码
1. 现在我们要利用这些生成的代码,首先我们需要一个关于所有映射的配置文件。需要我们手写如下:【不知道为什么generator没有选择自动生成这个文件,毕竟这些信息generator都可以得到】
-
<?xmlversion="1.0"encoding="UTF-8"?>
-
<!DOCTYPEconfiguration
-
PUBLIC"-//mybatis.org//DTDConfig3.0//EN"
-
"http://mybatis.org/dtd/mybatis-3-config.dtd">
-
<configuration>
-
<environmentsdefault="development">
-
<environmentid="development">
-
<transactionManagertype="JDBC"/>
-
<dataSourcetype="POOLED">
-
<propertyname="driver"value="com.mysql.jdbc.Driver"/>
-
<propertyname="url"value="jdbc:mysql://localhost/test"/>
-
<propertyname="username"value="qgd"/>
-
<propertyname="password"value="123456"/>
-
</dataSource>
-
</environment>
-
</environments>
-
<mappers>
-
<mapperresource="test/dao/PetMapper.xml"/>
-
</mappers>
-
</configuration>
2. 另外还要使用然后我们还需要一个Main示例方法来调用这些已生成的代码:
-
packagetest;
-
-
importjava.io.Reader;
-
importjava.util.List;
-
-
importorg.apache.ibatis.io.Resources;
-
importorg.apache.ibatis.session.SqlSession;
-
importorg.apache.ibatis.session.SqlSessionFactory;
-
importorg.apache.ibatis.session.SqlSessionFactoryBuilder;
-
-
importtest.dao.PetMapper;
-
importtest.model.Pet;
-
importtest.model.PetExample;
-
-
publicclassTest{
-
-
publicstaticvoidmain(String[]args)throwsException{
-
Stringresource="MapperConfig.xml";
-
Readerreader=Resources.getResourceAsReader(resource);
-
SqlSessionFactorysqlMapper=newSqlSessionFactoryBuilder().build(reader);
-
SqlSessionsqlSession=sqlMapper.openSession();
-
-
PetExamplepet=newPetExample();
-
pet.or().andDeathIsNotNull();
-
try{
-
PetMappermapper=sqlSession.getMapper(PetMapper.class);
-
List<Pet>allRecords=mapper.selectByExample(pet);
-
for(Pets:allRecords)
-
System.out.println(s);
-
}finally{
-
sqlSession.close();
-
}
-
}
-
}
这样就可以打印出相应的查询结果信息了。
四、小结
该示例的完整的Eclipse工程见附件mybatis-generator-usage.zip,其中已经包含了示例需要使用的jar包。
本文中只是用到了mybatis-generator 的一部分功能,mybatis-generator 生成代码的方式还包括ant或Maven脚本,或者直接使用java API生成;另外通过修改配置文件,generator还可以指定表的生成细节,并可以添加插件。其功能文档在generator的分发包的doc文件夹下有更详细的介绍。
这里使用的表示没有主键的表,针对有一个主键或多个主键的表,mybatis-generator的生成的内容也有所不同,感兴趣的读者可以自行试验一下。
分享到:
相关推荐
MyBatis Generator 自动生成代码完整包
使用Mybatis Generator逆向工程自动生成Mybatis相关代码(包含Mysql与Oracle)
使用MyBatis Generator自动生成MyBatis代码,最终生成方式有 1、使用Eclipse插件 2、使用命令行 3、自定义Java代码
使用MyBatis Generator 自动生成Dao、Bean、Mapping。将mysql数据库中的表转换为java中的实体类,接口,和映射文件
MyBatis Generator代码自动生成,重写MyBatis Generator源码,不需要第三方插件了,main方法运行
使用MyBatis Generator自动创建代码 mybatis-generator-core-1.3.2 jar 下载
mybatis-generator 自动生成mybatis dao model层代码
使用MyBatis Generator插件自动生成映射文件,里面有案例,生成的DAO接口、mappering映射文件,实体类。只要修改表名和数据库名就可以用了
MyBatis Generator是一个可以用来生成Mybatis dao,entity,Mapper文件的一个工具,在项目的过程中可以省去很多重复的工作,我们只要在MyBatis Generator的配置文件中配置好要生成的表名与包名,然后运行一条命令就会...
这是 IntelliJ IDEA Maven Mybatis generator 自动生成代码 的完整源码 教程地址:http://blog.csdn.net/fenglailea/article/details/78291522
压缩包中含有word文档教程,简单设置后双击批处理即可生成对应文件,复制到项目中即可。简单方便,生成的mapper.xml已包含大部分简单的sql操作语句,mybatis开发者必备工具。
mybatis generator插件自动生成代码实例,数据库使用mysql
Mybatis Generator自动生成代码实例,具体过程和效果看博文 http://blog.csdn.net/evankaka/article/details/47023955
使用MyBatis Generator生成DAO
自己找资料,慢慢高了一个mybatis自动生成代码的类,当然是在mybatis-generator基础之上的,由于项目中有lombok,所以需要对生成的地方进行改造。我将改造后的文件都打包上传了,需要的同学拿去吧 zip包里面包含: ...
最近mybatis的官网上 mybatisGenerator 代码自动生成工具 下不了了,在这里分享一下,亲自使用过,挺好用的