前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用mybatis自带工具,自动生成表对应domain、mapper.xml以及dao

使用mybatis自带工具,自动生成表对应domain、mapper.xml以及dao

作者头像
有一只柴犬
发布2024-01-25 10:44:06
1000
发布2024-01-25 10:44:06
举报
文章被收录于专栏:JAVA体系JAVA体系

1、需要手动建表,如T_PRI_USER

2、新建配置文件generator.properties:

代码语言:javascript
复制
#工程src路径
project = E\:/java/eclipseVillage/icity-yuntv/src
#工程存放mapper.xml路径
resource = E\:/java/eclipseVillage/icity-yuntv/resource
#指定数据连接驱动jar地址
classPath=E:/java/eclipseVillage/icity-yuntv/WebRoot/WEB-INF/lib/mysql-connector-java-5.1.11-bin.jar
jdbc_driver = com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://192.168.22.20:3306/icity_yuntv?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
jdbc_user=root
jdbc_password=ffcsadmin

3、新建配置文件generatorConfig.xml:

代码语言:javascript
复制
<?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="generator.properties"/>
	
	<!-- 指定数据连接驱动jar地址 -->
	<classPathEntry location="${classPath}" />
	
	<!-- 一个数据库一个context -->
	<context id="infoGuardian" targetRuntime="MyBatis3">
		<!-- 注释 -->
		<commentGenerator >
			<property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
			<property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳-->
		</commentGenerator>
		
		<!-- jdbc连接 -->
		<jdbcConnection driverClass="${jdbc_driver}"
			connectionURL="${jdbc_url}" userId="${jdbc_user}"
			password="${jdbc_password}" />
		
		<!-- 类型转换 -->
		<javaTypeResolver>
			<!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
			<property name="forceBigDecimals" value="false"/>
		</javaTypeResolver>
		
		<!-- 生成实体类地址 -->	
		<javaModelGenerator targetPackage="cn.ffcs.yuntv.domain"
			targetProject="${project}" >
			<!-- 是否在当前路径下新加一层schema,eg:fase路径cn.ffcs.test.domain", true:cn.ffcs.test.domain".[schemaName] -->
			<property name="enableSubPackages" value="false"/>
			<!-- 是否针对string类型的字段在set的时候进行trim调用 -->
			<property name="trimStrings" value="true"/>
		</javaModelGenerator>
		
		<!-- 生成mapxml文件 -->
		<sqlMapGenerator targetPackage="mybatis"
			targetProject="${resource}" >
			<!-- 是否在当前路径下新加一层schema,eg:fase路径cn.ffcs.test.domain", true:cn.ffcs.test.domain".[schemaName] -->
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>
		
		<!-- 生成mapxml对应client,也就是接口dao -->	
		<javaClientGenerator targetPackage="cn.ffcs.yuntv.dao"
			targetProject="${project}" type="XMLMAPPER" >
			<!-- 是否在当前路径下新加一层schema,eg:fase路径cn.ffcs.test.domain", true:cn.ffcs.test.domain".[schemaName] -->
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>
		
		<!-- 配置表信息,这里没生成一张表,这里需要改变一次对应表名 -->	
		<table schema="icity_yuntv" tableName="T_USER_ADDR"
			domainObjectName="UserAddr" enableCountByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			enableUpdateByExample="false">
			<!-- schema即为数据库名 tableName为对应的数据库表 domainObjectName是要生成的实体类 enable*ByExample 
				是否生成 example类   -->
			
			<!-- 忽略列,不生成bean 字段 
			<ignoreColumn column="FRED" />-->
			<!-- 指定列的java数据类型 
	      	<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />-->
		</table>

	</context>
</generatorConfiguration>

4、新建主类:

代码语言:javascript
复制
import java.io.File;
import java.io.IOException;
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.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class GeneratorMain {
	public static void main(String[] args) {
		List<String> warnings = new ArrayList<String>();
		boolean overwrite = true;
		//读取配置文件
		File configFile = new File("src/generatorConfig.xml");
		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config;
		try {
			config = cp.parseConfiguration(configFile);

			DefaultShellCallback callback = new DefaultShellCallback(overwrite);
			MyBatisGenerator myBatisGenerator;
			try {
				myBatisGenerator = new MyBatisGenerator(config, callback,
						warnings);
				myBatisGenerator.generate(null);
				
				//打印结果
				for(String str : warnings){
					System.out.println(str);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}

		} catch (IOException e) {
			e.printStackTrace();
		} catch (XMLParserException e) {
			e.printStackTrace();
		}
	}
}

5、导入jar包:

mysql-connector-java-5.1.11-bin.jar.jar 下载地址;http://download.csdn.net/detail/p793049488/8087305

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档