Mybatis动态代理(接口开发)

基于上一篇的例子:Mybatis示例
基础环境同上回:jar,config.xml,mapper.xml
不同之处:
省略掉statement,根据约定可以定位出SQL语句。

接口,接口中的方法必须遵循以下约定:

  • 1.方法名和mapper. xml文件中标签的id值相同
  • 2.方法的输入参数和mapper.xm1文件中标签的 parameterType类型一致
  • 3.方法的返回值和mapper.xml文件中标签的resultType类型一致

除了以上约定,要实现接口中的方法 和 Mapper.xml中SQL标签一一对应,还需要以下1点:
namespace的值,就是接口的全类名(接口 – mapper.xml 一一对应)

匹配的过程:

  1. 根据接口名 找到 mapper.xml文件 (根据的是namespace=接口全类名)
  2. 根据接口方法名 找到mapper.xml文件中的SQl标签 (方法名=SQL标签ID值)
  3. 以上两点保证:当我们调用接口中的方法时,程序能自动定位到某一mapper.xml文件中的SQl标签

习惯:SQL映射文件 mapper.xml和接口放在同一个包 (注意修改conf.xml中)

项目结构:
在这里插入图片描述
userMapper.xml
在这里插入图片描述第五行代码,修改成 接口的全类名,这样,接口就跟xml文件关联起来了。


userMapper.java
在这里插入图片描述
接口名 就是xml的文件名。
方法名 就是userMapper.xml 中的id


Test.java

package Test;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

import mapper.UserMapper;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import user.User;

public class Test {
	public static void main(String[] args) throws IOException {
		String resource = "config.xml"; 
		//加载mybatis的配置文件(它也加载关联的映射文件)
		Reader reader =  Resources.getResourceAsReader(resource); 
		//构建sqlSession的工厂
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		//创建能执行映射文件中sql的sqlSession
		SqlSession session = sessionFactory.openSession();
		
		UserMapper usermapper = session.getMapper(UserMapper.class);
		
		//根据学号查找
//		User user = usermapper.selectUserById(7);
//		System.out.println(user);

		//添加user
		/*
		User user = new User(6, "曹丕", "cp", "许昌");
		usermapper.addUser(user);
		System.out.println(user.toString());
		*/
		
		//修改用户信息
		/*
		User user = new User();
		user.setName("曹植");
		user.setPassword("cz");
		user.setAddress("null");
		user.setId(6);
		usermapper.updateUserById(user);
		*/
		
		//查找全部
		List<User> queryAll = usermapper.queryAll();
		System.out.println(queryAll);
		
		session.commit();

	}
}

注意commit

还有不要忘记修改config.xml中 mapper的路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bruce.vvu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值