Java模拟数据库增删改查

7 篇文章 0 订阅

      因为这个课程设计的年代比较久远而且当时个人水平有限,所以只写出部分当时写代码的想法,通过这个课设,有利于理解数据库的基本功能

一下为部分想法:

1.对于数据字典的创建,每次运行程序时,先检测文件是否存在file.exists(),如果存在的话进入下一步,如果不存在则进行创建,数据字典中存储了表名以及字段名

2.对于不同语句的识别,通过正则表达式,但是我只实现了一些基本的语句,不涉及复杂的语法的情况下正则表达式还比较简单

3.接下来的 是我比较特色的一些想法:因为是用文件进行存储,所以需要进行区分

比如对于学生表来说,假设有两个字段 学号和姓名,文件中的形式为

学号  姓名

001  张三

002  李四

需要确定出字段在每一行的位置,比如,查看学生表中的姓名字段的全部信息,需要保证取出来的是第二列而不会取错位置

这里我用了分隔符    ‘---’     每次进行检索字段的时候,先通过分隔符检索出字段前有几个分隔符,然后 在接下来的数据行中,按照相同的分隔符个数进行存取

4.关于表的连接,这里采用了课本上提到的比较直接的方法,用类似笛卡尔积的方法进行等值连接,这时候需要注意的是,当多次比较的时候,如果使用纯IO操作进行对文件的反复读取,需要用到博客中第一篇文章提到的mark()和reset()方法,当然也可以先读到内存中再反复遍历,这样效率高不少

5.上面提到的分隔符是为了能够整齐的存取文件,可以通过Java中的%ms或者%-ms,分别为左补空格和右补空格,可以事先规定一组的长度是10,然后在保证数据长度不超过10的情况下剩余长度进行空格补齐,然后取数据的时候也可以按照相同的长度取可参考 https://wenda.so.com/q/1482091977722144 

 

Jmockdata(再也不用苦逼的造测试数据了) Jmockdta是一款实现模拟JAVA类型或对象的实例化并随机初始化对象的数据的工具框架。单元测试的利器。     The plug-in of Jmockdata what through random algorithm mock java data.   Jmockdata插件通过随机算法模拟Java数据.   版本信息 Jmockdata-2.0 发布时间 2017-02-03 Jmockdata-1.0 发布时间 2017-01-04 具体介绍和用法可以参考如下:   0. 模拟数据入口方法 JMockData.mock(JmockDataWrapper) 1. 被模拟数据必须继承JmockDataWrapper经过它的包装 2. 被模拟的数据最好是plain bean,只提供getter,setter,has,is方法的才可以被模拟 3. 框架默认实现了40个元数据类型的数据模拟器包括:   byte.class,Byte.class,byte[].class,Byte[].class, short.class,Short.class,short[].class,Short[].class, int.class,Integer.class,int[].class,Integer[].class, long.class,Long.class,long[].class,Long[].class, float.class,Float.class,float[].class,Float[].class, double.class,Double.class,double[].class,Double[].class, boolean.class,Boolean.class,boolean[].class,Boolean[].class, char.class,Character.class,char[].class,Character[].class, String.class,String[].class, BigDecimal.class,BigDecimal[].class, BigInteger.class,BigInteger[].class, Date.class,Date[].class 通过对以上基本元数据类型的模拟实现,本框架可以轻松模拟由以上元数据结构组成的BEAN、LIST、SET、ARRAY等复杂深度的数据结构的数据模拟。   4. 可以通过JmockDataContext 获取模拟过程的所有上下文信息,甚至可以打印整个模拟类型树   5. 可以通过JMockDataManager 注册模拟数据类型,重写模拟数据算法,注册模拟数据类拦截器等 6. 可以通过实现MockData来实现一个模拟数据类型 7. 可以通过实现JmockDataTemplate,或者继承JmockDataTemplateDefault来重写模拟数据算法 8. 可以通过实现JmockDataInterceptor来实现一个拦截器 9. 具体示例实践请参考https://github.com/jsonzou/jmockdata-demo 10. 有问题或者对本框架有新的想法,请联系我, 作者:jsonzou 标签:Jmockdata
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巴塞罗那的风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值