当前位置:编程学习 > JAVA >>

不用数据库保存数据?如何实现

老师想让我们做一个上课时候的随机点名系统。。
可以用数据库保存每次的记录。。
我在想,可以不用数据库么?不用服务器,我的软件不用联网,直接本地记录。。
那我每次点名的记录怎么保存呢?
求解? 数据库 数据 --------------------编程问答-------------------- 保存在文件里 --------------------编程问答-------------------- xml文件,txt文件等等等等。只要定好格式就可以了 --------------------编程问答--------------------
引用 1 楼 udbwcso 的回复:
保存在文件里



引用 2 楼 crazypandariy 的回复:
xml文件,txt文件等等等等。只要定好格式就可以了



可不可以详细点讲呀,,,我们班有99个人,貌似有点多啊 --------------------编程问答--------------------
引用 3 楼 wensheng2013 的回复:
Quote: 引用 1 楼 udbwcso 的回复:

保存在文件里



引用 2 楼 crazypandariy 的回复:
xml文件,txt文件等等等等。只要定好格式就可以了



可不可以详细点讲呀,,,我们班有99个人,貌似有点多啊


可以使用java properties文件,以键值对的形式存放数据
键可以是学生的名字,值可以是0/1(代表是否来上课)
签到的时候也就是根据具体键,修改具体值

so,怎么用楼主自行www.google.ca --------------------编程问答-------------------- 可以使用db4o这个数据库,非常简单。比rdbms,xml简单的不是一点半点 --------------------编程问答-------------------- xml就行,就第三方解析jar包。自己定义好格式。就可以。 --------------------编程问答--------------------
引用 4 楼 kiritor 的回复:
Quote: 引用 3 楼 wensheng2013 的回复:

Quote: 引用 1 楼 udbwcso 的回复:

保存在文件里



引用 2 楼 crazypandariy 的回复:
xml文件,txt文件等等等等。只要定好格式就可以了



可不可以详细点讲呀,,,我们班有99个人,貌似有点多啊


可以使用java properties文件,以键值对的形式存放数据
键可以是学生的名字,值可以是0/1(代表是否来上课)
签到的时候也就是根据具体键,修改具体值

so,怎么用楼主自行www.google.ca


百度看了一下了,每次点名之后就关闭软件,第二次打开软件,数据还可以在吗? --------------------编程问答-------------------- 保存了数据,下次才能看到 --------------------编程问答-------------------- 貌似lz对数据存储还不是很熟悉 --------------------编程问答-------------------- 确实不是很熟悉呀。。有没有教的详细一点的呀。。。接着百度去。。 --------------------编程问答--------------------
引用 7 楼 wensheng2013 的回复:
Quote: 引用 4 楼 kiritor 的回复:

Quote: 引用 3 楼 wensheng2013 的回复:

Quote: 引用 1 楼 udbwcso 的回复:

保存在文件里



引用 2 楼 crazypandariy 的回复:
xml文件,txt文件等等等等。只要定好格式就可以了



可不可以详细点讲呀,,,我们班有99个人,貌似有点多啊


可以使用java properties文件,以键值对的形式存放数据
键可以是学生的名字,值可以是0/1(代表是否来上课)
签到的时候也就是根据具体键,修改具体值

so,怎么用楼主自行www.google.ca


百度看了一下了,每次点名之后就关闭软件,第二次打开软件,数据还可以在吗?


文件中的数据,只要你保存了自然还在嘛。
java properties文件就可以解决了,值先设定好全为1(所有人都到)
点到谁,没到改为0,到了不修改。关闭时重新全部设为1

不过楼主应该发现了,这样根本没法记录考勤记录(谁谁谁哪天缺勤不知道)
虽然用java properties文件、xml等文件还是可以解决
不过你还是考虑用数据库记录吧,也许老师就是本意就是让你们了解java操作数据库呢
--------------------编程问答--------------------
引用 11 楼 kiritor 的回复:
Quote: 引用 7 楼 wensheng2013 的回复:

Quote: 引用 4 楼 kiritor 的回复:

Quote: 引用 3 楼 wensheng2013 的回复:

Quote: 引用 1 楼 udbwcso 的回复:

保存在文件里



引用 2 楼 crazypandariy 的回复:
xml文件,txt文件等等等等。只要定好格式就可以了



可不可以详细点讲呀,,,我们班有99个人,貌似有点多啊


可以使用java properties文件,以键值对的形式存放数据
键可以是学生的名字,值可以是0/1(代表是否来上课)
签到的时候也就是根据具体键,修改具体值

so,怎么用楼主自行www.google.ca


百度看了一下了,每次点名之后就关闭软件,第二次打开软件,数据还可以在吗?


文件中的数据,只要你保存了自然还在嘛。
java properties文件就可以解决了,值先设定好全为1(所有人都到)
点到谁,没到改为0,到了不修改。关闭时重新全部设为1

不过楼主应该发现了,这样根本没法记录考勤记录(谁谁谁哪天缺勤不知道)
虽然用java properties文件、xml等文件还是可以解决
不过你还是考虑用数据库记录吧,也许老师就是本意就是让你们了解java操作数据库呢


那用数据库的话,这个软件就不好实用吧?我软件放在老师的手机里,那对应的数据库放在哪儿呢?要弄一份服务器吗? --------------------编程问答-------------------- XML文件保存个几十M的数据,读取速度还是比较快的。
再不然的,楼主可以了解以下java derby数据库。纯java写的,只需要导入derby.jar包就可以了。不需要安装数据库,挺方便的。 --------------------编程问答-------------------- 用JAXB不错,这个是jdk自带的,推荐用这个 --------------------编程问答-------------------- 楼主,你好,数据库有很多种的哦,access操作起来相对比较简单,如果不想保存在数据库里面的话,可以选择用文本的形式保存。不可随着点名次数的增多,觉得不用数据库的话,还是比较麻烦的呀。个人觉得以后出去工作也是要掌握数据库怎么操作的,还不如趁现在有项目,有程序做,应用上,为以后做准备呀。 --------------------编程问答-------------------- 用xml或txt文件保存呗。IO流 --------------------编程问答-------------------- 各种文件数据库的比较
Sqlite:老牌的文件数据库,完全免费 ( public domain ),使用方便,无须任何配置,下载源代码编译成库或者直接编译到应用程序都可以(250K,C代码)。支持事务机制和blob数据类型。
Berkeley DB:更老牌的文件数据库,最稳定的数据库,完全可以取代大部分传统client/server数据库的应用场合;支持xml(代价是30M硬盘空间)。缺点是配置和使用比较复杂,不太适合小项目。
Firebird:与sqlite比较类似,有C#支持。某些发布版本不能build, 很久没有关注了。
Access:一般不考虑。
xml数据库文件。
dat、txt等文本文件。
格式化文本。
各种音频、视频文件等。
=======================
sqlite json xml 都可以 --------------------编程问答-------------------- 用properties文件或者TXT都可行吧。不过还是觉得 properties文件比较好些。 --------------------编程问答-------------------- 可以使用csv,java有不少操纵csv的库。 --------------------编程问答-------------------- xml
json
txt
都可以,目前Json也很不错,去试试。
--------------------编程问答-------------------- 用文件代替数据库
txt也好,xml也好都是这种方式,其实数据库本身也就是一堆文件的集合
相对来说properties文件应该会更简单些吧
从网上找找java读写文件、读写xml的资料研究下就成 --------------------编程问答-------------------- 写到json xml 。等等。 --------------------编程问答-------------------- 序列化,反序列化也不错啊 --------------------编程问答-------------------- 干吗那么排斥数据库,有数据库不是很好?
如果不想依赖服务器来运行,可以使用文件行数据库,sqlite或者原始一点的access都可以。 --------------------编程问答-------------------- IO读写 ,保存在文件中 --------------------编程问答--------------------
引用 24 楼 spiniper 的回复:
干吗那么排斥数据库,有数据库不是很好?
如果不想依赖服务器来运行,可以使用文件行数据库,sqlite或者原始一点的access都可以。

对直接用access就行.别再造马车了. --------------------编程问答-------------------- 建议用txt将所有的学生以学号=姓名的形势存储,每次点名随机出几个学号,用properties读取姓名,在建立个文件名为当天日期的txt文件,以姓名=true/false的形势存储,月底的时候再读取所有的文件。 --------------------编程问答-------------------- 前提:如果不用数据库,本来是数据库保存数据的,就得用相应的文件代替
1)学生信息表---->student_班级名称.xml
比如叫student_1304.xml,楼主需要学生xml的格式,读取和写入xml,使用dom4j

<root>
  <classInfo>
      <studentInfo>
         <name>Tom</name>
         <age>21</age>
      </studentInfo>
     <studentInfo>
         <name>Tom</name>
         <age>21</age>
      </studentInfo>
      <studentInfo>
         <name>Tom</name>
         <age>21</age>
      </studentInfo>
  </classInfo>
</root>

如不用xml,最简单的是使用txt文本文件
student_1304.txt,txt中一行代表一名学生信息
#序号,学号,班级,姓名,性别,联系电话
0001,1304001,1304,Tom,male,1373430000
0002,1304002,1304,Lucy,female,1374444
使用IO,读取这个txt。
无论哪种方式,读取的信息可以保存List或者Map中,这个List或者Map保存在内存中(就是建个static属性,把这个List或者Map赋值给它),就可以直接使用。
2)点名信息
建个文件夹roll-call,然后在这个文件夹中
roall-call-student-1304-20131014.properties
每天都生成roall-call-student-1304的一个文件。
文件里保存
学号=0
学号=1
或者学号=true
学号=false

自己使用Properties类写个工具类,从文件中读取 --------------------编程问答-------------------- 我上面是最简单的考虑,11楼的思路也可以考虑一下。另外点名信息里不应该只存到或者不到吧,应该还有:不到-病假,不到-事假。所以我倾向于
学号=0
学号=1
学号=2
至于0、1、2这些枚举值,是怎么定义的,那就再建个propertie文件
config/defaultSystem.properties
0=到
1=病假
2=事假
3=谈恋爱
4=牛逼飞天了
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,