`
caicai1230231
  • 浏览: 23676 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

mybatis自动生成类,ORM配置实践

 
阅读更多
         mybatis目前一直作为我主要使用的ORM框架,当然,它的简单,SQL可控,高效才是我选择它的最终原因。前段时间学习了他的实体,ORM的XML文件自动生成,感觉也是比较简单。下面稍微介绍一下具体的配置方面的

 

在它的官网上,有几种方式来生成类及配置。

1 从命令提示符 使用 XML 配置文件

2 作为Ant 任务使用 XML 配置文件

3 作为Maven Plugin

4 从另一个Java 程序使用 XML 配置文件

5 插件生成

今天,我只讲实践第3,5点:

一 使用MAVEN插件

首先在你的POM里面添加一个PLUG,


另外,针对MVN,需要设置两个内置变量:


mybatis.generator.overwrite:表示每次生成是否覆盖之前的文件,默认为否

mybatis.generator.configurationFile:表示生成代码文件的配置文件,默认文件名为generatorConfig.xml,这里我进行自定义,因为插件生成对比MVN的生成,里面的配置项不能公用,当然。各位看官,有好的方式,也请分享一下。OK。MVN的配置生成就OK了。你只需要使用熟悉的mvn clean install,即可从DB生成你想要的实体,ORM的配置。

二 使用官方的插件

这个是基于eclipse的swt的,GITHUB上面,有这个插件的地址https://github.com/mybatis/generator/tree/master/eclipse/UpdateSite,下载下来,然后放到eclispe下面的dropins下面,重启一下就行了。

最后,我们重点的讲一下generatorConfig.xml这个配置项文件

classPathEntry :元素 用于添加运行类路径位置到类路径中的 MyBatis Generator(MBG)。 classPathEntry元素是generatorConfiguration的子元素.MBG 在这些情况下从这些路径下加载类:

a 当加载 JDBC 驱动内省数据库时

b 当加载根类中的 JavaModelGenerator 检查重写的方法时

context :元素用于指定生成一组对象的环境。子元素用于指定要连接到的数据库、 要生成对象的类型和要内省的表。多个 context元素可以在generatorConfiguration元素中列出来,这样可以在同一个MyBatis Generator (MBG)从不同的数据库或者使用不同的生成生成器参数生成对象。以下都 是context的子元素

commentGenerator:用来定义注释生成的属性,主要有suppressAllComments,suppressDate这两个属性。其中suppressAllComments
表示是否生成注释,suppressDate表示是否生成日期

jdbcConnection:定义数据库相关的属性说明,比较简单,就不列了。


javaModelGenerator:JAVA的model生成配置,主要有targetPackage,targetProject丙个属性

targetPackage:表示生成的MODEL包路径

targetProject:表示生成的MODEL项目路径

sqlMapGenerator:用于定义SQL映射生成器的属性。SQL映射生成器为每一个内省的表生成MyBatis/iBATIS形式的XML文件。如果不指定一个javaClientGenerator,则适用以下规则:

如果您指定一个sqlMapGenerator,那么MBG将只生成SQL映射的XML文件和模型对象。如果您没有指定一个sqlMapGenerator,那么MBG将只会生成模型对象。

targetPackage:这个包用于放置生成的SQL映射文件。在默认的生成器中,属性"enableSubPackages"用来控制如何计算实际的包。

如果是true,如果表的catalog和schema存在,就将他们作为子包加起来。如果"enableSubPackages"是false(默认值),计算的package将是targetPackage属性指定的值。MBG 将创建所需的生成包的文件夹。

targetProject:这用来指定生成SQL映射的目标项目。当在Eclipse环境中运行时,此选项指定保存对象的位置的项目和源文件夹。在其他环境中,此值应为本地文件系统上的现有目录。如果它不存在,MBG不会创建它。

javaClientGenerator:用于定义 Java 客户端代码生成器的属性。Java客户端生成器生成Java接口和类,它可以简单地使用生成的Java模型和XML映射文件。在iBATIS2目标环境中,这些对象可以生成DAO接口和实现类形式的代码。对Mybatis来说,会生成Mapper接口形式的代码。如果不指定此元素,然后代码生成器(MBG)将不会生成Java客户端接口和类。

table 元素用来从内省数据库中选择一个表。选定的表会生成如下的这些对象:

一个 MyBatis/iBATIS 格式的SQL映射文件

一组根据表生成的"model"类:

一个和表的主键匹配的类(如果表有主键)。

一个包含了非主键字段和BLOB字段的类,如果存在主键类,这个类就会继承主键类。

如果表中包含BLOB字段,就会有一个包含了BLOB字段的类。这个类会根据表的配置继承上面的一个或两个类。

一个用于不同的"by example"方法(selectByExample, deleteByExample)生成动态查询条件的类。

(可选) 一个DAO接口或者类。

最后给个配置截图:


当然,这个mybatis的插件其实是不支持多表关联去生成代码。初看,好像是不太友好。不过,你静下来想一下,其实也就明白。在一个大数据访问的时代,为什么需要多表关联。我们跟本不需要!!!就是要单表。足够简单,足够清晰,足够NB.话说回来,你确实需要多表关连时,可以在它的基础上,再去改你的SQL了。

分享到:
评论

相关推荐

    mybatis - 代码生成(postgresql\mysql)

    总的来说,"mybatis - 代码生成(postgresql\mysql)"这个主题涵盖了数据库管理、ORM框架使用、代码自动化生成等多个方面,是提升开发效率,降低出错概率的重要实践。在实际开发中,通过合理利用这类工具,可以大大...

    mybatis自动生成代码文档

    ### MyBatis自动生成代码文档 #### 知识点一:MyBatis简介与优势 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。...

    Mybatis自动生成实体类以及Mapper文件

    "Mybatis自动生成实体类以及Mapper文件"是Mybatis的一个实用特性,能够显著提高开发效率,减少手动创建代码的工作量。 首先,我们需要理解Mybatis Generator(MBG)的角色。MBG是一个代码生成工具,它可以基于...

    手写简易版ORM框架(仿mybatis)

    ORM,全称Object-Relational ...学习并实践手写ORM框架,不仅有助于理解数据库操作的本质,还能加深对MyBatis等成熟ORM框架的理解。通过这种方式,开发者可以更好地掌握数据持久化的原理,提升在实际项目中的应用能力。

    使用mybatis自动建bean

    3. 使用MyBatis Generator:MyBatis Generator是一个代码生成工具,能够根据数据库表结构自动生成Java Bean、Mapper接口及XML配置文件。这样不仅减少了手动编写这些代码的工作量,也保证了代码的一致性和准确性。 ...

    MyBatis 官方笔记 + MyBatis 3.5.10 官方英文文档

    综上所述,MyBatis 作为一个灵活的 ORM 框架,提供了强大的 SQL 执行能力和对象关系映射功能,使得开发人员可以专注于业务逻辑,而无需过多关注底层的数据库操作。通过熟练掌握 MyBatis,我们可以构建更加健壮、高效...

    代码自动生成和配置文件自动更改的工具

    例如,ORM(对象关系映射)工具如Hibernate或MyBatis可以自动生成与数据库表对应的Java实体类。此外,一些IDE如Eclipse和IntelliJ IDEA内置了代码生成功能,能够帮助开发者生成getter/setter、构造函数等常见方法。 ...

    java根据数据库自动生成vo 类

    通过配置Hibernate的`hbm.xml`映射文件,可以自动生成对应的Java类。使用Hibernate的逆向工程工具,如`hibernate-tools`,可以快速从数据库中生成实体类。这个过程包括读取数据库模式,创建Java类,并自动添加字段、...

    springboot+mybatis+逆向生成工具demo.zip

    MyBatis Generator(MBG)则是MyBatis的一个扩展,它能根据数据库表结构自动生成Java实体类、Mapper接口和Mapper XML配置文件。MBG大大减轻了开发人员的手动编码工作,提高了开发效率。在本示例中,通过配置MBG插件...

    数据库代码自动生成

    实体类的生成通常基于ORM(Object-Relational Mapping)框架,如Hibernate或MyBatis,这些框架提供了元数据映射功能,通过解析数据库表结构,自动生成包含字段、类型、注解等信息的实体类代码。 其次,...

    mybatis根据数据库实体自动生成mapper.xml文件

    1. **MyBatis Generator**: MyBatis Generator(MBG)是MyBatis官方提供的一个代码生成工具,它可以自动生成基于数据库表的Java实体类、Mapper接口和Mapper XML文件,大大提高了开发效率。首先,你需要在项目中引入...

    Java自动生成实体类源代码

    - 使用ORM框架(如Hibernate、MyBatis)配合自动生成实体类,可以更好地实现数据库操作的代码化。 - 定期更新实体类,确保其与数据库结构一致,避免因表结构改变导致的运行时错误。 - 使用代码格式化工具(如...

    mybatis脚手架

    MyBatis代码生成器是MyBatis提供的一个强大的辅助工具,它可以自动生成Java实体类、Mapper接口及XML配置文件、Service接口及实现类等,极大地简化了数据库模型与Java代码之间的绑定工作。开发者只需要配置好数据库...

    Spring4.0+SpringMVC4.0+Mybatis3.2框架整合例子(SSM) 自动生成代码

    5. **自动代码生成**:使用工具或自定义脚本,根据数据库表结构自动生成Model、Mapper接口、Mapper XML文件,减少手动编写工作。 6. **Controller层**:创建Controller类,通过注解(如`@RequestMapping`)定义URL...

    MyBatis 3.3.1

    mybatis-generator-core-1.3.2.jar是MyBatis的代码生成器,它可以根据数据库表结构自动生成Java实体类、Mapper接口和XML配置文件。这极大地提高了开发效率,减少了手动编写重复代码的工作量。只需配置好...

    MyBatis逆向工程项目

    在实际应用中,MyBatis逆向工程通常是指自动生成SQL映射文件和相关的Java实体类。逆向工程可以从现有的数据库结构反推,自动生成这些代码,减少了手动编写的工作量。开发者只需要按照自己的数据库表结构,运行逆向...

    Spring集成JPA和MyBatis简单例子-20170622

    在IT行业中,Spring框架...在"Spring集成JPA和MyBatis简单例子-20170622"这个压缩包中,可能包含了示例代码,演示了如何在Spring项目中配置和使用这两种技术,这对于初学者理解和实践Spring的集成能力具有很大的帮助。

    Mybatis文档(中英)

    除了XML配置,Mybatis还支持注解方式,可以直接在Mapper接口和实体类上使用注解,减少XML配置的工作量。例如,`@Insert`、`@Update`、`@Select`和`@Delete`用于定义SQL操作。 5. **动态SQL** Mybatis的动态SQL...

Global site tag (gtag.js) - Google Analytics