Mybatis (四)逆向工程

MyBatis的代码生成器,可以根据数据库生成model、mapper.xml、mapper接口和Example,通常情况下的单表查询不用再手写mapper。
企业开发中,常用的逆向工程方式:
由数据库中的表生成java代码

eclipse安装Mybatis Generator插件

在这里插入图片描述
在搜索框中输入mybatis generator
你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Mybatis Generator Configuration File的创建

在这里插入图片描述在这里插入图片描述

db.properties

数据库连接参数配置文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

在pom文件中添加jar包依赖

<!-- mysql -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.19</version>
		</dependency>
		<!-- 添加mybatis逆向生成插件-->
		<dependency>
			<groupId>org.mybatis.generator</groupId>
			<artifactId>mybatis-generator-core</artifactId>
			<version>1.4.0</version>
		</dependency>
		<!--  添加mybatis的jar包 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.4</version>
		</dependency>

generatorConfig.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="db.properties" />
	<context id="context1" targetRuntime="MyBatis3">
		<commentGenerator>
			<!--是否去除自动生成的注释,true:是,false:否 -->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
		<!-- 数据库连接的信息:驱动类、连接地址、用户名、密码 -->
		<jdbcConnection driverClass="${jdbc.driver}"
			connectionURL="${jdbc.url}" userId="${jdbc.username}"
			password="${jdbc.password}">
		</jdbcConnection>
		<!--forceBigDecimals: 默认为false,把JDBC DECIMAL和NUMERIC类型解析为 Integer,为true时,把把JDBC 
			DECIMAL和NUMERIC类型解析为java.math.BigDecimal -->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>
		<!-- targetPackage:生成po类的位置 -->
		<javaModelGenerator
			targetPackage="cn.itcast.ssm.po" targetProject=".\src\main\java">
			<!--enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
			<!--从数据库返回的值被清理前后的空格 -->
			<property name="trimStrings" value="true" />
		</javaModelGenerator>
		<!-- targetPackage:mapper映射文件生成的位置 -->
		<sqlMapGenerator targetPackage="cn.itcast.ssm.mapper"
			targetProject=".\src\main\java">
			<!--enableSubPackages:是否让schema作为包的后缀 -->
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>
		<!-- targetPackage:mapper接口生成的位置 -->
		<javaClientGenerator type="XMLMAPPER"
			targetPackage="cn.itcast.ssm.mapper" targetProject=".\src\main\java">
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>
		<!--指定数据库表 -->
		<table tableName="items"></table>
		<table tableName="orderdetail"></table>
		<table tableName="orders"></table>
		<table tableName="user"></table>
	</context>
</generatorConfiguration>

使用java程序运行方式,不依赖开发环境

import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
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.internal.DefaultShellCallback;


public class GeneratorSqlmap {
	public void generator()throws Exception{
		List<String>warnings=new ArrayList<String>();
		boolean overwrite=true;
		//指定逆向工程配置文件
		URL uri =GeneratorSqlmap.class.getClassLoader().getResource("generatorConfig.xml");
		File configFile=new File(uri.getPath());
		ConfigurationParser cp=new ConfigurationParser(warnings);
		Configuration configuration=cp.parseConfiguration(configFile);
		DefaultShellCallback shellCallback=new DefaultShellCallback(overwrite);
		MyBatisGenerator mpg=new MyBatisGenerator(configuration, shellCallback, warnings);
		mpg.generate(null);
	}
	public static void main(String[] args) throws Exception {
		try {
			GeneratorSqlmap generator=new GeneratorSqlmap();
			generator.generator();
		}catch(Exception e) {
			e.printStackTrace();
		}
		
	}
}

执行测试程序后,项目自动生成java文件和xml文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值