MyBatis 学习记录02--07/11--接口式编程

一、 原理

1. 接口的作用:

1)规范了参数类型
2)返回值
3)抽象化:dao层规范与实现层的分离,可以用mybatis或者hibernate等多种实现

2. 接口中的方法:

只用写方法体,根据提供的id,查询Employee数据,并封装成Employee对象

3. sql映射配置文件的作用:

根据sql语句,功能同接口中的方法是一样的
因此:接口与xml文件进行动态绑定
此时,mybatis会为Interface自动创建一个代理对象,来进行后续的增删改查(回答了为何Interface不需要实现类的问题;查询代理对象可以通过XXX.getClass()这个方法获取)

4. 如何实现接口与xml文件绑定:

1)namespace改为接口全类名 —与接口绑定成功
2)select标签中的id改为Interface方法中的方法名—与接口中的特定方法进行绑定

二、 修改

1)new — Interface

包名:com.atguigu.mybatis.dao
名:EmployeeMapper.java
在其中要规定一个方法(不用写实现类):根据提供的id,查询Employee数据,并封装成Employee对象
在这里插入图片描述

2)sql映射配置文件

在这里插入图片描述

3)MyBatisTest.java测试文件

  • 抽取“获得sqlSessionFactory”的方法:因为经常要使用
    在这里插入图片描述
    在这里插入图片描述
    getMapper中的参数:接口的实现对象名
    mapper.getRmById:调用接口的具体方法
    在这里插入图片描述

三、总结

1. 接口式编程:

原生方式: Dao ===> Dao实现类
MyBatis: Mapper ===> XXMapper.xml

2.SqlSession:

代表和数据库的一次对话,用之后关闭

3. 非线程安全:

SqlSession与connection一样,都是非线程安全的。
private SqlSession sqlsession; — X
这样写在多线程环境下会产生资源竞争
每次使用都应获取新的对象

4. 代理对象:

将接口与xml文件进行动态绑定
mapper接口没有实现类,但mybatis会为接口生成代理对象
EmployeeMapper empMapper = sqlSession.getMapper(EmployeeMapper.class);

5. 2个重要的xml文件:

1)全局配置文件mybatis-config.xml:(可以没有)

数据库的连接池信息
事务管理器信息
系统运行环境信息

2)sql映射文件EmployeeMapper.xml:(必须有!!!)

每一个sql语句的映射信息,将sql抽取出来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值