idea实现spring boot Mybatis框架的逆向工程

本文详细介绍了如何使用MyBatis Generator插件进行逆向工程,包括配置Maven依赖、application.properties和generatorConfig.xml文件,以实现从数据库表自动生成实体类、Mapper文件和DAO接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先添加逆向工程所需要的依赖

build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>

			<!--逆向工程所需的插件-->
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>
				<configuration>
					<verbose>true</verbose>
					<overwrite>true</overwrite>
					<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>这里的路径一定要写对
				</configuration>
			</plugin>

		</plugins>
	</build>

新建application.properties

db.driverLocation=D:/maven/mv/read/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar这里的一定要写自己包所在位置不要复制我的
db.driverClassName=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/date?characterEncoding=utf-8
db.username=root
db.password=123456

在resources下新建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="application.properties"></properties>

	<!-- 指定数据库驱动的jdbc驱动jar包的位置 -->
	<classPathEntry location="${db.driverLocation}" />

	<!-- context 是逆向工程的主要配置信息 -->
	<!-- id:起个名字 -->
	<!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
	<context id="default" targetRuntime="MyBatis3">

		<!--optional,旨在创建class时,对注释进行控制-->
		<commentGenerator>
			<property name="suppressDate" value="true" />
			<!-- 是否去除自动生成的注释 true:是 : false:否 -->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>

		<!--jdbc的数据库连接-->
		<jdbcConnection driverClass="${db.driverClassName}"
						connectionURL="${db.url}"
						userId="${db.username}"
						password="${db.password}">
		</jdbcConnection>

		<!--非必须,类型处理器,在数据库类型和java类型之间的转换控制-->
		<javaTypeResolver>
			<!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 -->
			<!-- 不是 double 和 long 类型 -->
			<!-- 使用常用的基本类型代替 sql 包下的引用类型 -->
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>

		<!-- targetPackage:生成的实体类所在的包 -->
		<!-- targetProject:生成的实体类所在的硬盘位置 -->
		<javaModelGenerator targetPackage="com.saas.demo.baen"//写你自己得
							targetProject=".\src\main\java">
			<!-- 是否允许子包 -->
			<property name="enableSubPackages" value="false" />
			<!-- 是否对modal添加构造函数 -->
			<property name="constructorBased" value="true" />
			<!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
			<property name="trimStrings" value="true" />
			<!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 -->
			<property name="immutable" value="false" />
		</javaModelGenerator>

		<!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置 -->
		<sqlMapGenerator targetPackage="mapper"
						 targetProject=".\src\main\resources">
			<!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>

		<!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 -->
		<javaClientGenerator type="XMLMAPPER"
							 targetPackage="com.saas.demo.dao" targetProject=".\src\main\java">
			<!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>
		<table tableName="student" domainObjectName="Student"//配置表
			   enableCountByExample="false" enableUpdateByExample="false"
			   enableDeleteByExample="false" enableSelectByExample="false"
			   selectByExampleQueryId="false">
		</table>
	</context>
</generatorConfiguration>

之后双击mybatis-generator:generate

 刷新工程,可以看到生成的文件

可能出现的错误

db.driverLocation=D:/maven/mv/read/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar//这里最好写6.0以下的,不然容易出错
db.driverClassName=com.mysql.jdbc.Driver//6.0以下不要写成com.mysql.cj.jdbc.Driver这样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值