mybatis04--Mapper动态代理实现

本文介绍了一种使用MyBatis的Mapper代理模式来替代传统DAO层实现的方法。通过这种方式,可以更直接地调用映射文件中的SQL语句,简化了代码结构并提高了开发效率。

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

通过之前的操作,我们发现dao的实现类其实并没有做什么实质性的工作,仅仅是通过sqlSession的相关API定位到StudentMapper映射文件

中的ID中的sql语句,其实真正操作DB的是mapper中的sql

所以mybatis就抛开了dao层的实现类,可以直接定位到mapper中的sql!然后执行sql对DB进行操作!这种对dao的实现方式我们称为Mapper的动态代理方式!

 

1.删除之前的StudentDaoImpl实现类

2.修改StudentMapper文件中的namespace必须是StudentDao的完整限定名

 

3.修改StudentMapper文件中所有的id必须和StudentDao接口中的方法名称完全一致

 

4.修改测试类代码

public class StudentTest {
    StudentDao dao;
    SqlSession session;

    @Before
    public void before() {
        // 因为需要关闭session 需要把session提取出去
        session = SessionUtil.getSession();
        dao = session.getMapper(StudentDao.class);
    }
    @After
    public void after() {
        if (session != null) {
            session.close();
        }
    }
    // 新增
    @Test
    public void test() {
        Student student = new Student("小黑333", 100);
        System.out.println("方法之前==" + student);
        dao.addStudent(student);
        System.out.println("方法之后==" + student);
        session.commit();
    }
}

 之后的删除,修改,删除和查询也是同样的操作!

转载于:https://www.cnblogs.com/xtdxs/p/7094927.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值