Java之路(7)--笑着给你出道题1

 

笑着 胖胖兰原创,转载请注明。

    bluesmile979@hotmail.com

 http://blog.csdn.net/bluesmile979/archive/2008/10/22/3123464.aspx

    OK,到了这里,该学的最基本的东西就差不多了。在迎接新的学习之前,我们是不是应该做做练习了?嗬嗬,在这里,笑着给大家来出一道题。

 

    这道题其实上一篇文章中已经涉及到了。就是我们自己来做个数据库。还记得么?关于SQL文解析的阐述

 

    笑着这道题就是自己做一个实现了数据库select,insert,update基础功能的我们自己的数据库。这道题可以联系除了数据库连接的大部分基础知识,而且,这道题本身在做什么?在做的是数据库,这会加深你对数据库基础的理解。知识那么多是学不过来的,举一反三最重要。这道题可以锻炼我们一些举一反三的能力。另外,随着我们能力的提高,任何一方面能力的提高都会让我们发现我们之前作的东西是多么的简陋,可笑。然后我们去完善,去重构。能学到的东西,不只表面那么多。甚至,现在先做个没有界面的,后面学了GUI我们再添加界面。可以说,除了网络方面的东西这个练习中练习不到,这个练习可以比较全面的练习倒我们学到的东西。或者换个说法,我们学到的大多数的知识都可以用到这个练习中。万一你做的数据库以后跟MySql齐名了,可别忘了笑着。呵呵。

 

笑着在这里简单给大家解析一下,整理一下大概的思路。

 

1. 关于数据库怎么建立。

我们连接数据库需要的基本参数还记得么?Driver,数据库名称,用户名,密码。

怎么做呢?数据库是我们自己做的,简单的东西,可以先不做数据库服务器。Driver提供一些数据库服务器的功能,数据库名称的话,我们可以指定一个相对路径(比如在我们自己的Driver里面做这个事情),然后数据库名称对应一个目录名称,连结到数据库的时候实际上我们是连接到这个目录。至于用户名,密码,暂时Driver帮忙管理一下好了。

2. 数据如何在数据库里面存储。

连接到了数据库之后,数据是存储在Table里面的。Table我们怎么做呢?用文件吧,一个文件对应一个Table。然后字段如何在Table(文件)中存储呢?最简单的,csv格式可以考虑一下,呵呵。顺便提一下IO里面有一个RandomAccess类,大家做的时候先用正常的FileIO的类来做,但是有一天,也许你会需要RandomAccess这个类。原因,笑着就不解释了,也不是一两句话能解释清楚地。

 

3. 然后,仿照Java连结数据库的类做一套我们自己的数据库连接类吧。最上层的包括Connection,Statement,ResultSet先实现最基本的功能,让我们的数据库查询,保存,更新功能可以动起来就OK了,不要着急一口吃个胖子,那不太可能。做下去随着你能力的提高,你就会发现,正因为我们做这个练习的时候会犯很多错误,出很多问题,小这才会推荐这个练习。

 

关于Connection没有什么特别要强调的。

 

关于Statement的问题就是上一篇文章中提到过的,SQL文的解析。把Select,From,WhereOrder By, Group By等等当作关键字去解析客户作为参数传给我们的SQL文。关键的关键是我们要如何组织我们我们所有的解析类的结构呢,解析成什么样的东西,解析好的东西如何存放呢?嗬嗬,练习吧练习,笑着不能告诉大家关键的关键该怎么做了,大家自己去琢磨吧,这才是练习的关键。笑着可以告诉大家的是,这一块儿的练习有助于你对所谓的模式,代码重构方面的理解。就只做一个Statement类,不做辅助的解析类的话,我们应该很快就会发现一些问题了。

 

关于ResultSet,直接参考Java的接口给出对应的模拟实现就好了。

 

4. 关于数据结构

文件存储,选出来的数据如何存放,排序,查找,嘿嘿,数据结构阿,数据结构。

 

5. 池,自己尝试着去做一下吧。

 

     嗯,每一部分都比较容易给出基础实现,但是每一部分都很难做到最好。所以这是一个长期的练习。

 

好像还有点要说的,忘记了,现就这样吧。有时间有兴趣的尝试一下。如果练习达不到预期的目标,你可以来找笑着。笑着向您郑重承诺,笑着绝对绝对不会为此承担任何责任。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值