mapper的动态映射 参考动力节点公开课

1.什么是mapper的动态映射?


在之前的程序中,可以发现,真正实现方法的是mapper文件中相应的sql语句

在Mapper的动态代理方式中,程序员无需实现Dao接口,接口是由MyBatis结合映射文件自动生成的动态代理实现的

2.mapper动态映射实例


1.Dao接口

需要注意,此处Dao接口的方法名要与mapper文件中的 id保持一致,这样才能正确生成实现类

package rodisland;
public interface Dao 
{	
	Student selectStudentById(int id);
}

2.修改mapper映射文件

 <mapper namespace="rodisland.Dao">
 

namespace需要改成Dao接口的全类名

若之前的log4j配置文件中,限定了namespace,需要保持一致

3.删除之前实现类,修改测试类

package test;

import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import rodisland.Dao;
import rodisland.MyBatisUtil;
import rodisland.Student;


public class Mytest 
{
	private Dao dao;
	private SqlSession session;
        //getSession
	@Before
	public void before()
	{
		session=MyBatisUtil.getSqlSession();
		dao=session.getMapper(Dao.class);
	}

        //close session
	@After
	public void after()
	{
		if(session !=null)
			session.close();
	}
	
	@Test
	public void Test07()
	{
		Student student=dao.selectStudentById(10);
		System.out.println(student);
	}	
	}
	

获得实现类的方法:

dao=session.getMapper(Dao.class);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值