Mapper系列二:逆向工程

参考文档: https://github.com/abel533/Mapper/wiki/4.1.mappergenerator
原生 MyBatis 逆向工程和通用 Mapper 逆向工程对比:
在这里插入图片描述
1、引入相关依赖

	<dependencies>
		<dependency>
			<groupId>tk.mybatis</groupId>
			<artifactId>mapper</artifactId>
			<version>4.0.0-beta3</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.2.8</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>${mysql.version}</version>
		</dependency>
	</dependencies>

2、在pom.xml文件中添加properties

	<properties>
		<!-- ${basedir}引用工程根目录 -->
		<!-- targetJavaProject:声明存放源码的目录位置 -->
		<targetJavaProject>${basedir}/src/main/java</targetJavaProject>

		<!-- targetMapperPackage:声明MBG生成XxxMapper接口后存放的package位置 -->
		<targetMapperPackage>com.atguigu.shop.mappers</targetMapperPackage>

		<!-- targetModelPackage:声明MBG生成实体类后存放的package位置 -->
		<targetModelPackage>com.atguigu.shop.entities</targetModelPackage>

		<!-- targetResourcesProject:声明存放资源文件和XML配置文件的目录位置 -->
		<targetResourcesProject>${basedir}/src/main/resources</targetResourcesProject>

		<!-- targetXMLPackage:声明存放具体XxxMapper.xml文件的目录位置 -->
		<targetXMLPackage>mappers</targetXMLPackage>

		<!-- 通用Mapper的版本号 -->
		<mapper.version>4.0.0-beta3</mapper.version>

		<!-- MySQL驱动版本号 -->
		<mysql.version>5.1.37</mysql.version>
	</properties>

3、在pom.xml文件中添加plugin

	<build>
		<plugins>
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>

				<!-- 配置generatorConfig.xml配置文件的路径 -->
				<configuration>
					<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
					<overwrite>true</overwrite>
					<verbose>true</verbose>
				</configuration>

				<!-- MBG插件的依赖信息 -->
				<dependencies>
					<dependency>
						<groupId>mysql</groupId>
						<artifactId>mysql-connector-java</artifactId>
						<version>${mysql.version}</version>
					</dependency>
					<dependency>
						<groupId>tk.mybatis</groupId>
						<artifactId>mapper</artifactId>
						<version>${mapper.version}</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>

4、创建config.properties

# Database connection information
jdbc.driverClass = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mapper
jdbc.user = root
jdbc.password = root

#c3p0
jdbc.maxPoolSize=50
jdbc.minPoolSize=10
jdbc.maxStatements=100
jdbc.testConnection=true

# mapper
mapper.plugin = tk.mybatis.mapper.generator.MapperPlugin
mapper.Mapper = tk.mybatis.mapper.common.Mapper

5、创建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="config.properties" />

	<context id="Mysql" targetRuntime="MyBatis3Simple"
		defaultModelType="flat">
		<property name="beginningDelimiter" value="`" />
		<property name="endingDelimiter" value="`" />

		<!-- 配置通用Mapper的MBG插件相关信息 -->
		<plugin type="${mapper.plugin}">
			<property name="mappers" value="${mapper.Mapper}" />
		</plugin>

		<!-- 配置连接数据库的基本信息 -->
		<jdbcConnection 
			driverClass="${jdbc.driverClass}"
			connectionURL="${jdbc.url}" 
			userId="${jdbc.user}" 
			password="${jdbc.password}">
		</jdbcConnection>
	
		<!-- 配置Java实体类存放位置 -->
		<javaModelGenerator 
			targetPackage="${targetModelPackage}"
			targetProject="${targetJavaProject}" />

		<!-- 配置XxxMapper.xml存放位置 -->
		<sqlMapGenerator 
			targetPackage="${targetXMLPackage}"
			targetProject="${targetResourcesProject}" />

		<!-- 配置XxxMapper.java存放位置 -->
		<javaClientGenerator 
			targetPackage="${targetMapperPackage}"
			targetProject="${targetJavaProject}" 
			type="XMLMAPPER" />

		<!-- 根据数据库表生成Java文件的相关规则 -->
		<!-- tableName="%"表示数据库中所有表都参与逆向工程,此时使用默认规则 -->
		<!-- 默认规则:table_dept→TableDept -->
		<!-- 不符合默认规则时需要使用tableName和domainObjectName两个属性明确指定 -->
		<table tableName="tabple_emp" domainObjectName="Employee">
			<!-- 配置主键生成策略 -->
			<generatedKey column="emp_id" sqlStatement="Mysql" identity="true" />
		</table>
	</context>
</generatorConfiguration>

6、运行逆向工程
 在pom.xml 这一级目录的命令行窗口。执行maven命令mvn mybatis-generator:generate
在这里插入图片描述
测试:
 创建mybatis配置文件mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

	<!-- 引入外部属性文件 -->
	<properties resource="jdbc.properties"/>
	
	<!-- 配置MyBatis运行环境 -->
	<environments default="development">
		<!-- 配置专门用于开发过程的运行环境 -->
		<environment id="development">
			<!-- 配置事务管理器 -->
			<transactionManager type="JDBC"/>
			<!-- 配置数据源 -->
			<dataSource type="POOLED">
				<property name="username" value="${jdbc.user}"/>
				<property name="password" value="${jdbc.password}"/>
				<property name="driver" value="${jdbc.driver}"/>
				<property name="url" value="${jdbc.url}"/>
			</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<package name="com.atguigu.shop.mappers"/>
	</mappers>

</configuration>

 编写测试类MBGTest

public class MBGTest {
	
	public static void main(String[] args) {
		SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
		InputStream inputStream = MBGTest.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
		SqlSessionFactory factory = builder.build(inputStream);
		SqlSession session = factory.openSession();
		
		//按照Java方式整合通用Mapper的特殊设置
		//i.创建MapperHelper对象
		MapperHelper mapperHelper = new MapperHelper();
		
		//ii.通过MapperHelper对象对MyBatis原生的Configuration对象进行处理
		Configuration configuration = session.getConfiguration();
		mapperHelper.processConfiguration(configuration);

		EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
		
		Iterator<Employee> iterator = mapper.selectAll().iterator();
		
		while (iterator.hasNext()) {
			Employee employee = iterator.next();
			System.out.println(employee);
		}
		
	}

}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值