`
woshixushigang
  • 浏览: 575786 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Mybatis Generator自动生成Mybatis的相关代码

 
阅读更多

本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码:

一、构建一个环境:

1. 首先创建一个表:

 

Sql代码 收藏代码
  1. CREATE TABLE pet (name VARCHAR (20), owner VARCHAR (20), species VARCHAR (20), sex CHAR (1), birth DATE , death DATE );

2. 然后注入数据

Sql代码 收藏代码
  1. insert into pet values ('Fluffy' , 'Harold' , 'cat' , 'f' , '1993-02-04' , null );
  2. insert into pet values ('Claws' , 'Gwen' , 'cat' , 'm' , '1994-03-17' , null );
  3. insert into pet values ('Buffy' , 'Harold' , 'dog' , 'f' , '1989-05-13' , null );
  4. insert into pet values ('Fang' , 'Benny' , 'dog' , 'm' , '1990-08-27' , null );
  5. insert into pet values ('Bowser' , 'Diane' , 'dog' , 'm' , '1979-08-31' , '1995-07-29' );
  6. insert into pet values ('Chirpy' , 'Gwen' , 'bird' , 'f' , '1998-09-11' , null );
  7. insert into pet values ('Whistler' , 'Gwen' , 'bird' , null , '1997-12-09' , null );
  8. insert into pet values ('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 提供一个配置文件,指定其生成的数据库的相关信息。
以下是一个示例:

Xml代码 收藏代码
  1. <? xml version ="1.0" encoding ="UTF-8" ?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. < generatorConfiguration >
  6. < classPathEntry location ="mysql-connector-java-5.1.6-bin.jar" />
  7. < context id ="DB2Tables" targetRuntime ="MyBatis3" >
  8. < commentGenerator >
  9. < property name ="suppressDate" value ="true" />
  10. </ commentGenerator >
  11. < jdbcConnection driverClass ="com.mysql.jdbc.Driver"
  12. connectionURL ="jdbc:mysql://localhost/test" userId ="qgd" password ="123456" >
  13. </ jdbcConnection >
  14. < javaTypeResolver >
  15. < property name ="forceBigDecimals" value ="false" />
  16. </ javaTypeResolver >
  17. < javaModelGenerator targetPackage ="test.model"
  18. targetProject ="../src/main/java" >
  19. < property name ="enableSubPackages" value ="true" />
  20. < property name ="trimStrings" value ="true" />
  21. </ javaModelGenerator >
  22. < sqlMapGenerator targetPackage ="test.dao"
  23. targetProject ="../src/main/java" >
  24. < property name ="enableSubPackages" value ="true" />
  25. </ sqlMapGenerator >
  26. < javaClientGenerator type ="XMLMAPPER"
  27. targetPackage ="test.dao" targetProject ="../src/main/java" >
  28. < property name ="enableSubPackages" value ="true" />
  29. </ javaClientGenerator >
  30. < table tableName ="pet" domainObjectName ="Pet" >
  31. </ table >
  32. </ context >
  33. </ 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代码 收藏代码
  1. java -jar mybatis-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都可以得到】

Xml代码 收藏代码
  1. <? xml version ="1.0" encoding ="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. < configuration >
  6. < environments default ="development" >
  7. < environment id ="development" >
  8. < transactionManager type ="JDBC" />
  9. < dataSource type ="POOLED" >
  10. < property name ="driver" value ="com.mysql.jdbc.Driver" />
  11. < property name ="url" value ="jdbc:mysql://localhost/test" />
  12. < property name ="username" value ="qgd" />
  13. < property name ="password" value ="123456" />
  14. </ dataSource >
  15. </ environment >
  16. </ environments >
  17. < mappers >
  18. < mapper resource ="test/dao/PetMapper.xml" />
  19. </ mappers >
  20. </ configuration >

2. 另外还要使用然后我们还需要一个Main示例方法来调用这些已生成的代码:

Java代码 收藏代码
  1. package test;
  2. import java.io.Reader;
  3. import java.util.List;
  4. import org.apache.ibatis.io.Resources;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.ibatis.session.SqlSessionFactory;
  7. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  8. import test.dao.PetMapper;
  9. import test.model.Pet;
  10. import test.model.PetExample;
  11. public class Test {
  12. public static void main(String[] args) throws Exception {
  13. String resource = "MapperConfig.xml" ;
  14. Reader reader = Resources.getResourceAsReader(resource);
  15. SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
  16. SqlSession sqlSession = sqlMapper.openSession();
  17. PetExample pet = new PetExample();
  18. pet.or().andDeathIsNotNull();
  19. try {
  20. PetMapper mapper = sqlSession.getMapper(PetMapper.class );
  21. List<Pet> allRecords = mapper.selectByExample(pet);
  22. for (Pet s : allRecords)
  23. System.out.println(s);
  24. } finally {
  25. sqlSession.close();
  26. }
  27. }
  28. }

 

这样就可以打印出相应的查询结果信息了。

四、小结

该示例的完整的Eclipse工程见附件mybatis-generator-usage.zip,其中已经包含了示例需要使用的jar包。

本文中只是用到了mybatis-generator 的一部分功能,mybatis-generator 生成代码的方式还包括ant或Maven脚本,或者直接使用java API生成;另外通过修改配置文件,generator还可以指定表的生成细节,并可以添加插件。其功能文档在generator的分发包的doc文件夹下有更详细的介绍。

这里使用的表示没有主键的表,针对有一个主键或多个主键的表,mybatis-generator的生成的内容也有所不同,感兴趣的读者可以自行试验一下。

分享到:
评论

相关推荐

    mybatis-generator自动生成代码[增加Service的生成]

    总结来说,MyBatis Generator是一个强大的代码生成工具,它能自动生成包括Service在内的持久层代码,大大简化了开发过程。通过定制配置和模板,开发者可以根据项目需求调整生成的代码结构和风格,提升开发效率,同时...

    使用Mybatis Generator自动生成Mybatis相关代码

    总之,Mybatis Generator是Mybatis框架下的一款强大辅助工具,它通过自动化代码生成,帮助开发者节省大量手动编写基础代码的时间,提高了开发效率,降低了出错概率。熟练掌握Mybatis Generator的使用,能让你在...

    MyBatis Generator 自动生成代码完整包

    MyBatis Generator(MBG)是一款强大的工具,用于自动生成MyBatis框架的SQL映射文件、Java模型类以及DAO接口。它极大地提高了开发效率,减少了手动编写这些基础代码的工作量,使开发者能够更专注于业务逻辑的实现。...

    使用MyBatis Generator自动生成MyBatis代码.docx

    MyBatis Generator 是一个基于 MyBatis 的代码生成工具,能够根据数据库表结构生成相应的 MyBatis 代码,包括实体类、映射文件、DAO 层和 Service 层等。使用 MyBatis Generator 可以大大减少开发时间和工作量,提高...

    Mybatis Generator自动生成Mybatis相关代码

    Mybatis Generator是一款强大的工具,它能够自动生成Mybatis的相关代码,包括Java模型类、Mapper接口与XML配置文件等,极大地提高了开发效率,减轻了开发者的手动编写工作。这个工具是基于Mybatis框架,通过解析...

    mybatis generator自动生成DAO、Bean、MapperXML等文件

    MyBatis Generator(MBG)是一款强大的自动化代码生成工具,专为MyBatis框架设计,能够自动生成DAO层、实体Bean以及Mapper XML文件,极大地提高了开发效率。在使用MBG时,用户只需要进行简单的配置,就可以自动生成...

    使用Mybatis Generator自动生成Mybatis相关代码(包含Mysql与Oracle)

    本教程将详细讲解如何使用Mybatis Generator针对Mysql和Oracle数据库自动生成相关代码。 首先,我们需要了解Mybatis Generator的基本配置。在项目中创建一个`generatorConfig.xml`配置文件,这是Mybatis Generator...

    Mybatis Generator 代码生成工具

    Mybatis Generator 是一款强大的自动化代码生成工具,它能够极大提高开发效率,特别是在处理与数据库交互的 CRUD(创建、读取、更新、删除)操作时。这个工具能够自动生成 Mybatis 的 XML 映射文件、实体类以及 ...

    Mybatis Generator自动生成JavaEntity带中文注释和注解[Maven]工程

    在"Maven"环境下,我们可以轻松地集成这个插件,实现自动化代码生成,尤其对于处理带有中文注释和注解的需求,Mybatis Generator提供了很好的解决方案。 首先,我们来详细了解一下Mybatis Generator的配置过程。你...

    MyBatis Generator代码自动生成

    MyBatis Generator是一款强大的工具,它能够自动生成MyBatis框架所需的SQL映射文件、实体类和DAO接口,极大地提高了开发效率。通过重写MyBatis Generator的源码,我们可以进一步定制化生成的代码,使其更符合项目...

    mybatis-generator 自动生成mybatis dao model层代码

    mybatis-generator 自动生成mybatis dao model层代码

    Mybatis Generator自动生成代码demo

    Mybatis Generator是一个基于Java的代码生成器,它通过读取数据库表结构信息,根据预设的模板生成相应的Java代码。主要涉及的元素包括配置文件、模型类、XML映射文件和Mapper接口。 配置文件是Mybatis Generator的...

    IntelliJ IDEA Maven Mybatis generator 自动生成代码

    这是 IntelliJ IDEA Maven Mybatis generator 自动生成代码 的完整源码 教程地址:http://blog.csdn.net/fenglailea/article/details/78291522

    MybatisGenerator代码生成器(可查询指定字段)

    MybatisGenerator本身是没有提供查询指定字段的,例如数据库有5个字段,我想查询其中3个...经过研究MybatisGenerator实现原理,在保证原有功能的基础上,实现了生成查询指定字段的相关方法,下载即可使用。eclipse!

    mybatis 代码自动生成 ,并且自定义注释结合swagger

    首先,MyBatis的代码生成器(MyBatis Generator,简称MBG)能够自动生成Mapper接口、Mapper XML文件、实体类以及对应的DAO层代码,大大减少了手动编写这些基础代码的时间。通过自定义MBG的配置文件,我们可以定制...

    mybatis generator代码生成器

    MyBatis Generator是一个可以用来生成Mybatis dao,entity,Mapper文件的一个工具,在项目的过程中可以省去很多重复的工作,我们只要在MyBatis Generator的配置文件中配置好要生成的表名与包名,然后运行一条命令就会...

    mybatis代码自动生成

    在实际开发中,为了提高开发效率,MyBatis提供了一种便捷的代码生成工具——MyBatis Generator(MBG),它可以自动生成MyBatis相关的Mapper接口、Mapper XML文件、实体类以及Service接口和实现类等代码,极大地减少...

Global site tag (gtag.js) - Google Analytics