该系列完整的代码可以在我的git下载到
做好了准备,下面让我们来开始准备拼SQL。
前面提到了,我们有一个SqlBuilder类,专门用来拼add、delete、query、update的sql语句。毫无疑问,所有的这些拼语句的方法,传入的肯定是BaseModel类型的值。
我们首先看下add语句的sql
Delete、update、query的语句都类似,就不一一贴出来了。
有了SQL语句,我们就可以开始写BaseDao方法了。
需要注意的是,这个有一个参数排序的过程。
然后我们在看一下executeUpdate和executeQuery的实现。
查询和新增不同点在于,查询需要把ResultSet转换为对象。因此,我们提供了一个转换类RsMapper,类里有一个转换方法rsMapToEntityList。不难看出, 我们是通过反射的方式来进行,后续我觉得应该把这些全部Method全部缓存起来,这样应该可以很大程度上提高系统性能。
最后,我们得提供一个真正用于执行update和query的类DBUtil,这个类负责去拿到连接串、账号、密码,并且执行update和query。
到这里, 我们就基本完成了所有的功能。下一步,我们将开始测试这些方法,并且完成CodeGen,帮我们根据表名,自动生成实体类。