MyBatis Mapper动态代理详解

本文详细解析了MyBatis的Mapper动态代理机制,包括其作用、映射文件namespace属性的设置、Dao接口方法命名规则以及如何通过SqlSession获取Dao对象。通过一个实例,演示了对student数据库进行增删改查操作的全过程,涵盖了从数据库创建、实体类、Dao接口定义、映射文件配置到工具类和测试类的编写。

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

1、mapper动态代理的作用

mapper动态代理无需程序员实现Dao接口,接口由MyBatis结合映射文件自动生成的动态代理实现的。

2、修改映射文件的namespace属性

使用动态代理需要映射文件mapper标签中的namespace属性修改为Dao接口的全类名。

3、Dao接口方法命名

MyBatis框架要求,接口中的方法名必须与映射文件中的sql标签的id相同

4、Dao对象的获取

使用时只需要调用SqlSession的getMapper()方法,即可获取指定接口的类实现对象,该方法的参数为指定Dao接口的class值。

5、话不多说,下面上实例.实现对student数据库的增删改查。

相关jar包
在这里插入图片描述
结构目录
目录结构
1、首先我们新建一个student数据库
在这里插入图片描述
2、新建Student类,其中包含数据库中属性,这里太简单就不把代码放上来了。
3、新建Dao接口StudentDao

public interface StudentDao {
   
   
	//插入学生
	public void insertStudent(Student student);
	//删除学生
	public void deleteStudentById(int id);
	//修改学生信息
	public void updateStudent(Student student);
	//查询所有学生信息
	public List<Student> selectAllStudent();
	//使用if标签动态查询学生信息
	public List<Student> selectByIf(Student student);
}

4、新建映射文件UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.my.dao.StudentDao">

	<!-- 添加学生 -->
	<insert id="insertStudent" parameterType="com.my.student.Student"
										useGeneratedKeys="true" keyProperty="id">
		insert into student(name,age,score) values(#{
   
   name},#{
   
   age},#{
   
   score})	
		<!-- </selectKey>用于获取新插入记录的主键值 -->
		<selectKey resultType="int" keyProperty="id" order="AFTER"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值