美文网首页
从零开始写ORM框架系列6——整合Spring连接池和事务

从零开始写ORM框架系列6——整合Spring连接池和事务

作者: 窝牛狂奔 | 来源:发表于2018-03-10 18:28 被阅读0次

上一章,我们自己通过一个简单的SimpleTransaction让这个ORM工具支持了事务。虽然很简单,看起来也很实用,但想实际用于生产,肯定是不靠谱的, 仅仅作为学习用。这一章, 我们来看看,如何将数据库连接池和spring的事务管理器集成进来。让Spring来帮我们支持连接池和事务。


对连接池和事务的支持结果

这次, 我们先来看效果。

连接池测试

测试代码:

测试结果如下:

在这测试里,我们设置最大连接数为5, 开100个线程, 同时往表里插入数据,测试结果显示, maxActive和numActive都是5, 并且数据库里插入了100条数据,说明我们的连接池是起了作用的。

事务测试

测试代码:

测试结果:

这个测试里, 我们往foodinfo里插入了两条数据, 第二条数因为name属性为空, 会报一个异常。结果显示异常信息打出来了, 并且Foodinfo表的数据也没有插入第一条数据。说明我们完成了对事务的支持。

实现方式

引入相关的jar包。

2、配置datasource和事务

3、修改BaseDao的add方法

拼sql和参数的方法和前面文章讲到的方法一样, 不变。

总结

这个系列的文章到这里就暂时告一段落了,总结一下我们在这个ORM工具里完成了的工作:

1、支持SQLServer和MySql。

2、对比起ibatis,我们真正实现了零配置和零SQL,入手门槛极低。

3、支持查询指定SQL字段和查询条件里的指定where条件,防止SQL爆炸,防止因为select * 导致的数据库服务器、应用服务器的不必要开销(大多数下我们可能只需要表里的某一个字段)。

4、支持连接池。

5、支持事务。

6、实现了表到java实体代码的生成工具。

后面我们将继续考虑下,如何让我们的orm框架里支持水平拆分和垂直拆分的表。

相关文章

网友评论

      本文标题:从零开始写ORM框架系列6——整合Spring连接池和事务

      本文链接:https://www.haomeiwen.com/subject/kssbfftx.html