MyBatis代码生成器(超详细讲解)

您所在的位置:网站首页 access中表达式生成器的使用过程 MyBatis代码生成器(超详细讲解)

MyBatis代码生成器(超详细讲解)

#MyBatis代码生成器(超详细讲解)| 来源: 网络整理| 查看: 265

为什么要使用MyBatis代码生成器?

MyBatis代码生成器(MyBatis Generator)的作用就是方便我们偷懒,这样说比较贴切一些。 因为我们在使用MyBatis框架的时候,需要三个组件:

实体类Mapper接口Mapper.xml

在这里插入图片描述 在没有使用MyBatis代码生成器的时候,我们需要手动创建它们,一张表对应一个实体类、一个Mapper接口、一个Mapper.xml。 表的数量比较少的情况自己创建还可以,如果表有几十张或者上百张,我们要一个一个创建的话,很难受的。MyBatis也考虑到这点, 所以提供了代码生成器,我们只需要编写少量的配置,就能为每张表创建上面三个组件了,而且在创建的Mapper接口和Mapper.xml中,已经帮我们自动生成单表的增删改查代码了,也就是说使用MyBatis代码生成器,对于单表的增删改查我们不需要再写代码了。

我们通过下面两步来使用代码生成器:

编写代码生成器配置文件运行代码生成器 1.编写代码生成器配置文件

我们先对代码生成器配置文件做一个详细讲解,然后再给出整个配置代码。

首先要引入配置文件的模板,之后就是在这个XML模板配置 generatorConfiguration标签下只包含以下三个标签,下面一 一介绍这三个标签的作用。 在这里插入图片描述 properties标签 properties标签用于指定一个需要在配置中解析使用的外部属性文件,引入属性文件后,可以在配置中使用${property}这种形式的引用,通过这种方式引用属性文件中的属性值。properties标签包含resource和url两个属性,只能使用其中一个属性来指定,同时出现则会报错。 在这里插入图片描述 resource:指定classpath下的属性文件。 url:指定文件系统上的特定位置。 classPathEntry标签

这个标签可以配置多个,也可以不配置,只有一个location属性。这个标签最常见的用法就是通过location属性指定数据库驱动的路径。

context标签

这个标签至少配置一个,可以配置多个。context标签用于指定生成一组对象的环境。例如:

指定要连接的数据库指定要处理的数据库表生成实体类生成Mapper接口生成Mapper.xml

context标签属性如下: 在这里插入图片描述

必选属性id,id属性主要是区分多个context标签,必须唯一,id属性在运行代码生成器时使用。targetRuntime属性用于指定生成的代码的运行时环境,支持以下可选值: MyBatis3:默认值 MyBatis3Simple:这种情况下不会输出与Example相关的方法。

接下来我们看看context包含哪些子标签,我们只介绍其中常用的子标签。 在这里插入图片描述

commentGenerator标签

该标签用来配置如何生成注释信息,最多可以配置1个。

suppressAllComments:阻止生成注释。suppressDate:阻止生成的注释包含时间戳。addRemarkComments:注释是否添加数据库表的备注信息。 jdbcConnection标签

该标签用于指定MBG要连接的数据库信息,该标签必选,并且只能有一个。

driverClass:访问数据库的JDBC驱动程序的完全限定类名。connectionURL:访问数据库的JDBC连接URL。userId:访问数据库的用户ID。password:访问数据库的密码。 javaTypeResolver

该标签的配置用来指定JDBC类型和Java类型如何转换,最多可以配置一个。

javaModelGenerator标签

该标签用来控制生成的实体类。该标签必须配置一个,并且最多配置一个。

targetPackage:生成实体类存放的包名。targetProject:指定目标项目路径,可以使用相对路径或绝对路径。 sqlMapGenerator标签

该标签用于配置SQL映射生成器(Mapper.xml文件)的属性,该标签可选,最多配置一个。

targetPackage:生成SQL映射文件存放的包名。targetProject:指定目标项目路径,可以使用相对路径或绝对路径。 javaClientGenerator标签

该标签用于生成Mapper接口,该标签可选,最多配置一个。

targetPackage:生成Mapper接口存放的包名。targetProject:指定目标项目路径,可以使用相对路径或绝对路径。 table标签

该标签用于配置需要通过内省数据库的表,只有在table中配置过的表,才能经过上述其他配置生成最终的代码,该标签最少配置一个。 table标签有一个必选属性tableName,该属性指定要生成的表名,可以使用SQL通配符匹配多个表。例如要生成全部的表,可以如下配置

下面给出完整的配置文件代码

配置介绍完了,接下来我们就开始运行代码生成器,这里使用Java编写代码运行它。

2.使用Java代码运行代码生成器

我们需要在pom.xml中引入以下依赖

代码生成器核心依赖MyBatis框架依赖MySQL数据库驱动依赖 org.mybatis.generator mybatis-generator-core 1.3.7 org.mybatis mybatis 3.5.3 mysql mysql-connector-java 5.1.46

然后编写Java代码运行代码生成器配置文件

/** * 读取MBG生成代码 */ public class MyBatisGenerator { public static void main(String[] args) throws Exception { //MBG 执行过程中的警告信息 List warnings = new ArrayList(); //当生成的代码重复时,覆盖原代码 boolean overwrite = true; //读取我们的 MBG 配置文件 InputStream is = MyBatisGenerator.class.getResourceAsStream("/generator/mbg-config.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(is); is.close(); DefaultShellCallback callback = new DefaultShellCallback(overwrite); //创建 MBG org.mybatis.generator.api.MyBatisGenerator myBatisGenerator = new org.mybatis.generator.api.MyBatisGenerator(config, callback, warnings); //执行生成代码 myBatisGenerator.generate(null); //输出警告信息 for(String warning : warnings){ System.out.println(warning); } } }

运行之后的结果如下图,对于我们指定的表,MBG全部为我们生成对应的实体类,Mapper接口,以及Mapper.xml,超级方便。 在这里插入图片描述 这次的代码生成器源码以及sql建表语句在下面链接即可获得 代码生成器源码



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3