原始dao开发以及mapper动态代理开发

原始dao开发:

原始dao开发思路比较简单,写个dao接口和dao实现类即可。需要向dao实现类中注入sqlSessionFactory,在方法体内通过sqlSessionFactory创建sqlSession。操作完成之后,关闭资源。为什么在方法体内创建呢?因为mybatis中sqlSession是线程不安全的。如果在方法外面以成员变量的方式创建,可能会引发线程安全问题。

原始dao开发存在的问题

1 dao接口实现类方法中存在大量重复代码,从设计上来看,应该抽取。
2 调用sqlSession方法时,将satement的id硬编码了,即类似于”test.findUserById”这种,都写死了。
3 sqlSession的方法中,要求传入的参数是Object类型的(泛型),也就是说如果我传错了参数,编译不会报错,执行的时候才会报错,不利于开发。

Mapper动态代理

Mapper接口开发方式是基于入门程序的基础上,对 控制程序 进行分层开发,程序员只需要 编写mapper接口 和 Mappe.xml 配置文件即可,程序员编写mapper接口需要遵循一些开发规范,mybatis可以自动生成mapper接口实现类代理对象。

开发规范

程序员编写mapper接口需要遵循一些开发规范,mybatis可以自动生成mapper接口实现类代理对象。相关的开发规范如下:

① 在mapper.xml中namespace等于mapper接口地址

② 接口中的方法名和mapper.xml中statement的id一致

③ 接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致

④ 接口中的方法返回值类型和mapper.xml中statement的resultType指定的类型一致

mapper动态代理实现原理

动态代理实现原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值