mybatis generator生成代码工具的使用

mybatis generator生成代码工具的使用, 附demo

使用Hibernate时, 可以很方便的生成model,dao,和映射配置文件.在mybatis里, 也有生成器, 即mybatis generator, 简称MBG. 下面为大家介绍一下MBG的使用.

下载mybatis-generator-core-1.3.1-bundle.zip之后, 解压得到mybatis-generator-core-1.3.1.jar, 即生成器的jar包, 将mybatis-3.0.6.jar和mybatis-generator-core-1.3.1.jar加入到项目的lib里, 然后编写一个生成器的配置文件generatorConfig.xml.

介绍一下genernatorConfig.xml

<?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>	<properties resource="com/yuan/mybatis/mbg/util/generatorConfig.properties" />	<classPathEntry location="${classPath}" />	<context id="MBG" targetRuntime="MyBatis3" defaultModelType="conditional">		<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />		<plugin type="org.mybatis.generator.plugins.MapperConfigPlugin">			<property name="fileName" value="GeneratedMapperConfig.xml" />			<property name="targetPackage" value="com.yuan.mybatis.mbg.util" />			<property name="targetProject" value="${targetProject}" />		</plugin>		<commentGenerator>			<property name="suppressAllComments" value="true" />		</commentGenerator>		<jdbcConnection driverClass="${driverClass}"			connectionURL="${connectionURL}" userId="${userId}" password="${password}">		</jdbcConnection>		<javaTypeResolver>			<property name="forceBigDecimals" value="false" />		</javaTypeResolver>

		<javaModelGenerator targetPackage="${modelPackage}"			targetProject="${targetProject}">			<property name="enableSubPackages" value="true" />		</javaModelGenerator>

		<sqlMapGenerator targetPackage="${sqlMapperPackage}"			targetProject="${targetProject}">			<property name="enableSubPackages" value="true" />		</sqlMapGenerator>

		<javaClientGenerator type="XMLMAPPER"			targetPackage="${daoMapperPackage}" targetProject="${targetProject}">			<property name="enableSubPackages" value="true" />		</javaClientGenerator>		<table schema="minghan" tableName="sys_group" domainObjectName="Group">			<generatedKey column="groupId" sqlStatement="mysql"				identity="true" />		</table>		<table schema="minghan" tableName="sys_admin" domainObjectName="Admin"			enableCountByExample="false" enableUpdateByExample="false"			enableDeleteByExample="false" enableSelectByExample="false"			selectByExampleQueryId="false">		</table>

	</context></generatorConfiguration>

其中的properties元素里引用了一个generatorConfig.properties配置文件是为了方便移植的时候,只需修改resource的路径值和generatorConfig.properties里的值即进行生成操作.

generatorConfig.properties代码如下:

classPath=D\:/ylink/myeclipse/MBG/lib/mysql-connector-java-5.0.7-bin.jartargetProject=D\:/ylink/myeclipse/MBG/srcdriverClass=com.mysql.jdbc.DriverconnectionURL=jdbc\:mysql\://127.0.0.1\:3306/minghan?useUnicode\=true&amp;characterEncoding\=UTF-8userId=rootpassword=rootmodelPackage=com.yuan.mybatis.mbg.modelsqlMapperPackage=com.yuan.mybatis.mbg.model.mapperdaoMapperPackage=com.yuan.mybatis.mbg.dao.mapper

其中, targetProject是工程的源代码存放位置

classPath是数据库驱动包的位置, modelPackage是存放model实体的包, 对应数据库表, sqlMapperPackage是存放实体映射的XML配置文件, daoMapperPackage是存放Mapper接口的地方.

注意: 要事先建立这些包才可以生成.

如果不想生成mybatis的注释信息, 可以将commentGenerator里的suppressAllComments的值设为true,

table元素对应数据库表.

<table schema="minghan" tableName="sys_admin" domainObjectName="Admin"
	enableCountByExample="false" enableUpdateByExample="false"
	enableDeleteByExample="false" enableSelectByExample="false"
	selectByExampleQueryId="false">
</table>

schema即为数据库名, tableName为对应的数据库表, domainObjectName是要生成的实体类, 如果想要mapper配置文件加入sql的where条件查询, 可以将enableCountByExample等设为true, 这样就会生成一个对应domainObjectName的Example类, enableCountByExample等设为false时, 就不会生成对应的Example类了.

配置文件配好了之后,

进行生成代码, 既可以使用命令的方式, 也可以自已写一个带main的类来运行, 下面提供了一个带main的运行类

MyBatisGeneratorTool.java

package com.yuan.mybatis.mbg.util;

import java.io.File;import java.io.IOException;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.exception.InvalidConfigurationException;import org.mybatis.generator.exception.XMLParserException;import org.mybatis.generator.internal.DefaultShellCallback;

public class MyBatisGeneratorTool {	public static void main(String[] args) {		List<String> warnings = new ArrayList<String>();		boolean overwrite = true;		String genCfg = "/generatorConfig.xml"; //src的一级目录下		File configFile = new File(MyBatisGeneratorTool.class.getResource(genCfg).getFile());		ConfigurationParser cp = new ConfigurationParser(warnings);		Configuration config = null;		try {			config = cp.parseConfiguration(configFile);		} catch (IOException e) {			e.printStackTrace();		} catch (XMLParserException e) {			e.printStackTrace();		}		DefaultShellCallback callback = new DefaultShellCallback(overwrite);		MyBatisGenerator myBatisGenerator = null;		try {			myBatisGenerator = new MyBatisGenerator(config, callback, warnings);		} catch (InvalidConfigurationException e) {			e.printStackTrace();		}		try {			myBatisGenerator.generate(null);		} catch (SQLException e) {			e.printStackTrace();		} catch (IOException e) {			e.printStackTrace();		} catch (InterruptedException e) {			e.printStackTrace();		}	}}

运行此类即可生成对应于数据库表的实体类, Mapper配置文件, Mapper接口, 生成后可以测试其可用性.

时间: 2024-10-14 05:36:14

mybatis generator生成代码工具的使用的相关文章

mybatis Generator生成代码及使用方式

作者:偶尔记一下 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置. 本文中所有节点的链接都是对应的中文文档地址,可以点击查看详细信息. 注:本文后面提到的MBG全部指代MyBatis Generator. MyBatis Generator 1.3.4 扩展,可以设置 Mapper(Dao)后缀 运行MyBatis Generator 有4种运行MBG的方法,具体请看文档 运行 My

用org.mybatis.generator 生成代码

1:引入pom 2:增加生成配置xml: 3:增加java类: 代码: List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File directory = new File("");// 参数为空 String courseFile = directory.getCanonicalPath(); File configFile = new File(courseF

2016.7.12 eclispe使用mybatis generator生成代码时提示project E is not exist

运行mybatis-generator之后,出现错误:project E is not exist 错误原因:使用了项目的绝对路径. http://bbs.csdn.net/topics/391491008 修改后的: 然后运行就没有问题了.

去掉Mybatis Generator生成的一堆Example类

上篇讲了如何使用Mybatis Generator生成代码,但是再生成过程中,往往出现一大堆的Example类,而这些Example中的很多方法我们是不需要用到的,因此在生成之前我们可以添加如下代码: <table schema="general" tableName="tb_table_name" domainObjectName="EntityName" enableCountByExample="false" en

Mybatis 自动生成代码,数据库postgresql

最近做了一个项目,使用Mybatis自动生成代码,下面做一下总结,被以后参考: 一.提前准备: 1.工具类:mybatis-generator-core-1.3.2.jar 2.postgresql驱动:postgresql-9.2-1003-jdbc4.jar 3.xml文件 这些我都上传到了附件上,下载链接:Download 二.XML详解 咱们的核心配置文件:mybatisGeneratorConfig.xml <?xml version="1.0" encoding=&q

Mybatis自动生成代码

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码,Mybatis Generator是一个非常好用的工具,使用它可以大大节省开发的时间,并减少代码的编写量. 一.构建一个环境 1. 首先创建一个表: CREATE TABLE t_user ( USER_ID INT NOT NULL AUTO_INCREMENT, USER_NAME CHAR(

MyBatis Generator生成DAO——序列化

MyBatis Generator生成DAO 的时候,生成的类都是没有序列化的. 还以为要手工加入(開始是手工加入的),今天遇到分页的问题,才发现生成的时候能够加入插件. 既然分页能够有插件.序列化是不是也有呢. 果然SerializablePlugin,已经给我们提供好了. <plugin type="org.mybatis.generator.plugins.SerializablePlugin" /> 立即高端大气了起来.每一个model对象都乖乖的带上了Serial

Maven下用MyBatis Generator生成文件

使用Maven命令用MyBatis Generator生成MyBatis的文件步骤如下: 1.在mop文件内添加plugin <build> <finalName>KenShrio</finalName> <defaultGoal>compile</defaultGoal> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <

mybatis generator生成连接mysql与sqlserver的区别

mybatis generator生成连接mysql与sqlserver所在的区别在于驱动和数据库URL不同 mybatis generator连接mysql的配置文件是: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.