数据库增删改查底层是如何实现的?用文本来模拟库表实现?看看大家的意见
1数据库增删改查底层是如何实现的?
个人认为主要是对数据表的操作,但是具体对这些表是怎么操作的?
2用文本文件来模拟 数据的存储 实现增删改查。
思路 一行存储 一条信息,各个属性之间用 % 隔开 ,利用IO读取一行 就是一条数据信息
利用字符串的切割方法 获得各个 字段 ,然后组装成 对象。遍历所有的行 就去到 “数据库”中的
所有对象。所有对象放进List表存储。
增
利用IO,在文件尾处添加新数据。
查
利用IO,获得所有对象。得到List表。 也可以通过ID获得单个的对象。
删
依据ID ,从List列表中remove掉这个对象,清空文件,然后将新的 list 信息写入文件中去。
改
依据ID ,从List列表中取到这个对象,对其修改 ,清空文件,然后将新的 list 信息写入文件中去。
------------------------
现在考虑有没有新的更优秀的方法来实现
修改 和 删除 。
只针对文件中的 一行 来修改。而不清空文件。目前已知RandomAccessFile可以实现。
------------------------------------
各抒己见 谢谢各位!!
------解决方案--------------------查询如果你能保证第一行Id=1,第二行id=2 就可以用LineNumberReader来查找.
LineNumberReader reader = new LineNumberReader(new BufferedReader(new FileReader(file)));
String str = null;
while ((str = reader.readLine()) != null) {
if (reader.getLineNumber() == 4) {
System.out.println("第4行字符串:"+str);
}
}
------解决方案--------------------修改和删除操作,建议使用RandomAccessFile实现。
------解决方案--------------------数据库的实现远没有你想的那么简单
数据库的存在就是最大限度上减少程序对IO的操作
比如Oracle的系统就是构筑在非文件系统中。
如果说用IO来模拟数据库操作的话,
建议使用Excel来实现,毕竟JAVA对操作Excel的插件有不少。