个人知识管理系统Version1.0开发记录(03)
demo 设 计
一个知识点demo,在数据库和用户界面的互动事件。分三个层次,数据存储,数据方法工具,数据呈现界面。这一次先完成数据存储,按以下逻辑实现。工具:eclipse,oracle数据库,sqldeveloper(改用oracle的sqldeveloper)。(当后面数据库复杂时可以考虑PowerDesigner。)
1、考虑软件功能、数据方法、商业元素、逻辑扩展等实用因素,设计实体类。
2、用jdbc连接oracle数据库。
3、数据储存在数据库中,分析oracle数据库的数据类型。
4、数据从oracle数据库,到java操作oracle数据库,那么数据库的数据类型是如何转换成java数据类型的呢?可以推理出,数据库的数据类型和java数据类型存在对应关系。用java测试数据类型的对应关系。
5、demo数据录入,在ide的console界面读取数据(程序员的用户界面)。
下面一一述说。
1、如图。

2、先导入jdbc的jar包,jdbc连接数据库可以参考以下步骤。
(1)加载jdbc驱动。通过java.lang.Class类的静态方法forName(String className),加载想要连接的数据库的驱动到JVM(Java虚拟机),成功加载后,会将Driver类的实例注册到DriverManager类中。
(2)提供jdbc参数。连接oracle数据库的url,用户名,密码。根据这些参数创建数据库连接。
(3)获得java.sql.Statement实例,才能执行sql语句。我们这里通过PreparedStatement实例实现。
(4)执行sql语句,我们这里通过ResultSet executeQuery(String sqlString)实现。执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
(5)处理结果。
(6)关闭jdbc对象,释放资源。关闭结果集,关闭声明,关闭连接。
物以类聚。我们习惯把参数类型的数据放在一个地方,方便修改,创建db.properties(java.util.Properties),保存jdbc参数;同样,我们习惯进行数据库连接封装(可以写一个DBUtils或者BaseDao),包括读取参数连接数据库,数据库的关闭等。如图:

3、通过sqldeveloper新建一张包括大部分oracle数据类型的表datatypes。如图:

大概整理一下常用的oracle数据类型:
(1)字符串类型。字符串数据类型可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种。
(2)数字类型。number,integer,浮点数(binary_float和binary_double),float。
(3)日期类型。date,timestamp,interval year to moth,interval day to second。
(4)lob类型。内置的LOB数据类型包括BLOB、CLOB、NCLOB、BFILE(外部存储)的大型化和非结构化数据,如文本、图像、视屏、空间数据存储。
(这种类型后面用到,会用java来实现操作,比如增加修改查询,方法工具)
(5)raw,long raw类型。
(6)rowid类型。
4、oracle数据类型对应java数据类型。如图。

5、根据数据类型对应关系,和java实体类,设计java实体类对应的数据库表oneds。收集分析整理一个知识点,insert into oneds......数据录入,然后通过简单的get/set方法在控制台显示一些数据字段。
我们下一次需要完成的是,设计以这个知识点为对象的工具方法和逻辑处理类。比如,根据不同的搜索条件查询知识点对象,更新,排序,空间节点,关系设计,父子级联,追溯和提醒等。OK,我们下次见。
个人知识管理系统Version1.0开发记录(03)的更多相关文章
- 个人知识管理系统Version1.0开发记录(09)
MyBatis初试 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索. 运用Mybatis框 ...
- 个人知识管理系统Version1.0开发记录(01)
架 构 描 述 01.数据层,数据源,有形资源入库,无形资源整理,对外搜索引擎,对内平台搜索,数据类型(文字.图片.声音.视频.组合),数据时空优化,数据安全方案(数据进站关卡,数据出战关卡),数据并 ...
- 个人知识管理系统Version1.0开发记录(02)
第 一 步 做 什 么 我们该如何入手呢?先来看看目前常用的三个方法. 1.从事物产生的源头出发,层层推进,步步验证,最后开花结果.这种方法经常用于科研项目,或者三期以后的工程,国家政府项目用的较多. ...
- 个人知识管理系统Version1.0开发记录(12)
最近碰到个问题,在五个工作日内阅读一个百万行左右代码量的新项目集合,如何解决呢? 第一个工作日,环境观察.待在那个项目组,看项目成员们在做些什么事情,开发,测试,聊天,或多或少可以收集到一些项目相关的 ...
- 个人知识管理系统Version1.0开发记录(10)
物理分页 这次我们运用Mybatis拦截器来实现物理分页,后面会运用动态sql来实现,或者运用Map/CollectionUtils/StringUtils编写工具类来实现.oracle是运用的row ...
- 个人知识管理系统Version1.0开发记录(07)
模 块 复 用 原本还要测试一会的,突然出现一连串诡异的问题,比如,编译少加载个类啊,输入地址少个字母啊,改几行代码一改就是半小时啊.这是在提醒我们大脑疲倦了,所以果断小结,下次继续.这一次简单完成了 ...
- 个人知识管理系统Version1.0开发记录(11)
(1)匹配单个属性的关键字:(2)匹配单个对象的关键字:(3)匹配对象集合的关键字:(4)基于事件驱动的:(5)实时搜索,参考win7的搜索功能. 1.备份,java代码,数据库数据. 2.oracl ...
- 个人知识管理系统Version1.0开发记录(08)
切入点 前面,我们已经搭建好了web端的一种基本结构,需要进一步定位的主要问题有三点: 1.界面的选择和确定,用extjs做的初步样式,进一步改动为jqueryUI/html,再进一步改变为HTML5 ...
- 个人知识管理系统Version1.0开发记录(05)
demo controller我们从前面的实现过程可以得出三种普遍使用的信息处理方式:1.操作数据库,对数据进行增删改查,比如运用sqldevloper查看数据信息.2.运用计算机程序语言,对数据进行 ...
随机推荐
- mysql相关配置
http://www.cnblogs.com/cnblogsfans/archive/2009/09/21/1570942.html http://www.jb51.net/article/31902 ...
- libxml2 在mingw中 xmlfree连接错误问题
libxml2 在mingw中 xmlfree连接错误问题 2013年10月02日 ⁄ 综合 ⁄ 共 1527字 ⁄ 字号 小 中 大 ⁄ 评论关闭 原地址:http://blog.csdn.net/ ...
- 设计模式学习(二):面向对象设计原则与UML类图
一.UML类图和面向对象设计原则简介 在学习设计模式之前,需要找我一些预备知识,主要包括UML类图和面向对象设计原则. UML类图可用于描述每一个设计模式的结构以及对模式实例进行说明,而模式结构又是设 ...
- dubbo总结
一 .Dubbo产生背景 单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本.此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键. 垂直应用架构当访 ...
- HDU - 2732 Leapin' Lizards (拆点最大流)
题意:有N*M的矩形,每个格点有一个柱子,每根柱子有高度c,允许蜥蜴经过这根柱子c次,开始有一些蜥蜴在某些柱子上,它们要跳出这个矩形,每步最大能跳d个单位,求最少有多少蜥蜴不能跳出这个矩形. 分析:转 ...
- NGUI基本事件
You can add the following functions to your scripts placed on widgets or in-game objects with a coll ...
- 51nod 1391 01串(hash+DP)
题目链接题意:给定一个01串S,求出它的一个尽可能长的子串S[i..j],满足存在一个位置i<=x <=j, S[i..x]中0比1多,而S[x + 1..j]中1比0多.求满足条件的最长 ...
- $PDB——Python调试利器详解
python 2.7 pdb官方文档:https://docs.python.org/2.7/library/pdb.html pdb是ptyhon内置的一个调试库,是调试python代码的好帮手,本 ...
- SQL学习笔记之B+树
0x00 概述 要描述清楚B+树,得先了解二叉查找数,平衡二叉树. 0x01 二叉查找树 任意节点,它的左子树如果不为空,那么左子树上所有节点的值都小于根节点的值:任意节点,他的右子树如果不为空,那么 ...
- Django学习笔记之django-debug-toolbar使用指南
介绍 django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息. github地址 文档地址 安装 pip3 in ...