通用mapper归纳

博客介绍了通用mapper,它无需写mapper文件,能根据pojo类生成常用增删改查的sql语句,默认以pojo类首字母小写为表名,也可用注解改名。还提及QBC查询,其带example的方法可封装复杂查询条件,以及通用mapper的逆向工程。

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

不再需要写mapper文件 替我们生成常用的增删改查的sql语句
注意:是根据pojo类生成的sql语句 默认规则是pojo类首字母小写作为表名(可以用@Table(name = )注解改名)

使用前的配置:
需要配置tk包下定义的MapperScannerConfigurer   写一个mapper接口 继承 Mapper 范型是你的pojo  即可!~

@column注解:
		默认规则是驼峰字段名变成下划线形式  可以用这个注解来自定义

**内置的方法**
selectone:传入一个对象进行查询 根据你提供的pojo有值的字段来生成的where子句(非null的字段 所以不允许写基本类型) 生成的条件是用 = 来比较的

select:传入一个没有赋值字段名的pojo 查询全部数据

selectByPrimaryKey : 传入一个int类型  注意要使用@id注解标志哪个字段是主键 否则会全部字段变成联合主键进行查询

insert:插入对象 可以用@GeneratedValue(strategy = GenerationType.IDENTITY) 来返回自动生成的主键到用来插入的pojo中

insertSelective:实体类中的非主键字段并且是null的值不会放在insert语句中

updateByPrimaryKey :根据主键进行更新

delete  deleteByprimaryKey 同理

**

QBC查询

所有的带有example的方法 可以解决复杂的查询条件的封装
**

例如selectByExample方法的使用:
(1)new Example ()。createCriteria()
(2)调用andGreaterThan andLike等方法 
(3)可以调用两个createCriteria  用example.or(criteria2)来用or条件链接两个criteria对象
(4)调用通用mapper的selectByExample方法

**

通用mapper的逆向工程

**

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

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

	<!-- targetModelPackage:声明MBG生成实体类后存放的package位置 -->
	<targetModelPackage>com.公司名.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>
<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>
<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>

需要一个properties配置文件:config.properties
# Database connection information
jdbc.driverClass = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/common_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
# Database connection information
jdbc.driverClass = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/common_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

还需要一个xml: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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值