从零开始写ORM框架系列3

该系列完整的代码可以在我的git下载到


做好了准备,下面让我们来开始准备拼SQL。

前面提到了,我们有一个SqlBuilder类,专门用来拼add、delete、query、update的sql语句。毫无疑问,所有的这些拼语句的方法,传入的肯定是BaseModel类型的值。

我们首先看下add语句的sql


从零开始写ORM框架系列3_第1张图片

Delete、update、query的语句都类似,就不一一贴出来了。

有了SQL语句,我们就可以开始写BaseDao方法了。


从零开始写ORM框架系列3_第2张图片

需要注意的是,这个有一个参数排序的过程。

然后我们在看一下executeUpdate和executeQuery的实现。


从零开始写ORM框架系列3_第3张图片


从零开始写ORM框架系列3_第4张图片

查询和新增不同点在于,查询需要把ResultSet转换为对象。因此,我们提供了一个转换类RsMapper,类里有一个转换方法rsMapToEntityList。不难看出, 我们是通过反射的方式来进行,后续我觉得应该把这些全部Method全部缓存起来,这样应该可以很大程度上提高系统性能。


从零开始写ORM框架系列3_第5张图片

最后,我们得提供一个真正用于执行update和query的类DBUtil,这个类负责去拿到连接串、账号、密码,并且执行update和query。


从零开始写ORM框架系列3_第6张图片


从零开始写ORM框架系列3_第7张图片

到这里, 我们就基本完成了所有的功能。下一步,我们将开始测试这些方法,并且完成CodeGen,帮我们根据表名,自动生成实体类。

你可能感兴趣的:(从零开始写ORM框架系列3)