灌水 准备重写一个 SQL Helper

SinDynasty · November 06, 2017 · Last by SinDynasty replied at November 07, 2017 · 794 hits

准备重写一个SQL Helper:
1、我决定使用反射,来获取实体类的结构,根据实体类的结构去数据库创建相应的表(在有表的情况下,自动补足数据库表中缺少的字段);
2、对于增删改的操作,我将把实体类的对象先序列化为XML字符串,然后把这XML字符串转换成一个内存表(DataSet、DataTable),之后根据相应的操作,将其转换为相应的SQL语句,最后执行这些SQL语句,并获取相应的结果;
3、对于查的操作,我将在创建实体类所对应的表时(或者在补足数据库中缺少的字段时),将数据库表中的数据分段加载到内存中,然后在执行查的操作时,直接在内存中进行查找,并将查询结果转换为XML字符串,最后再把这XML字符串反序列化为实体类;
4、另外我将限制每个实体类所对应的数据库表的所有增删改查的并发操作(使用无锁的方法-----原子操作);
5、为了保证该SQL Helper能实现所有数据库通用,我将基于DbProviderFactory类来实现,同时也会将相关方法抽象化;
6、为了配合依赖注入,我还会将该SQL Helper写成一个服务Setvice;
最后一点还没想好,内存中的数据应该怎么管理呢?是给一个有效期,过期后清理数据,等下次要用的时候再去加载数据库表中所有的数据?还是一直就放在那?

共收到 8 条回复 时间 点赞

基本已经写完,就差那最后一点了

ojdbc、mybatis这些还不够你用吗?

槽神 回复

这些在我的语言里没有,我用的是.Net,而且是.Net Core,.Net Core的第三方类库还很少,根本满足不了我的需求,只能自己造轮子

多看看测试工具,多看看测试框架~

SinDynasty 回复

哦,我第一印象就是java😂

槽神 回复

你知道吗?那个驱动还是预览版的,而且有很多功能还没实现

好吧,.net的世界充满了荆棘~

槽神 回复

.Net Framework的话,第三方类库是可以的,但是他只能运行在Windows平台下,满足不了我的需求,而.Net Core的话因为是微软最近几年才出的,可以跨平台,所以现在第三方类库不足

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up