灌水 准备重写一个 SQL Helper

SinDynasty · 2017年11月06日 · 最后由 SinDynasty 回复于 2017年11月07日 · 1065 次阅读

准备重写一个 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 的话因为是微软最近几年才出的,可以跨平台,所以现在第三方类库不足

需要 登录 後方可回應,如果你還沒有帳號按這裡 注册