栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

实现一个基于Java语言的简易关系型数据库

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实现一个基于Java语言的简易关系型数据库

实现一个基于Java语言的简易关系型数据库

用来学习关系型数据库(如Mysql)的设计理念、核心骨架、基本算法。

涉及的核心原理

自平衡的排序二叉树: 我们的数据库采用平衡二叉树,来加快增删改查的速度

序列化:因为要存储到磁盘空间上,对添加数据之后的二叉树进行序列化

StartUpMain这个是启动类要,启动用的

设计思路 1.建表
create table students ( name varchar(30) , age varchar(30) );

建表的逻辑:建立一个Entity类

定义一个int id,作为查询的主键,定义一个map类型存放各个属性,定义一个String的Table.

我们的数据库是一个比较简单的数据库,所有的存放类都是Entity的实例

建立一个自平衡的二叉树,存储数据

在这个过程当中我们需要一个在表中维护一个id,随着子数据的被插入而增加.这就是我们自增的主键
之后我们通过截取字符串的方法获取到了表在所有的列和属性,在这里我们的属性可以用java中的Object来代替通过int propertyNum = (s.length - 4) / 3;我们来算出有多少个属性,在这里画一个饼,以后会通过分析字符串来识别
之后遍历字符串,在表中有一个list维护了属性

2.插入数据
insert into students values ( wangbing , 22 );

这个是直接在平衡二叉树里面封装了一个add方法,这个添加的子结点会根据id进行自平衡,保持二叉树平衡,以此来提升查找效率

3.查找数据
select * form students ;

这个在平衡二叉树里面写了一个中序遍历的方法,来打印.

最后这是运行截图

GitHub:https://github.com/xiaozhaotongzhide/MyMiniSql

未来改进(画饼)

1.完成删除和条件查询
2.对属性进行改进,使其可以存放多种属性.
3.设计一个工厂类,让工厂类来建立数据结点,同时把表中存放的自增长id给工厂类来进行解耦
4.通过java序列化来实现本地存储

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/992311.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号