个人知识管理系统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,我们下次见。