PowerPersonal开发实录:从Database到User Interface
来源:互联网 发布:北京知金教育官网 编辑:程序博客网 时间:2024/06/08 03:33
6.10 - 6.11
今天开始开发PowerPersonal, 希望能够做成一款出色的个人管理软件,第二个目标是学习java的基础技术,从关系数据库到UI的点点滴滴。好吧,出发!
做的第一个模块是通讯录管理。超级简单,只有一个表Contact:
Contact
------------------------
CONTACT_ID: int
NAME: varchar(32)
RELATION: int
EMAIL: varchar(32)
CELLPHONE: varchar(32)
HOMEPHONE: varchar(32)
WORKPHONE: varchar(32)
QQNUM: varchar(32)
数据库使用一个轻量级的数据库derby,使用一个derby.jar就可以了。的确相当简单。
数据库连接跟jdbc兼容得很好,完全没有必要考虑太多,但是还是花了一个下午看了quickstart.
(1) 总结一下数据库连接的步骤:
(1)Class.forName(className)
( 2) conn = DriverManger.getConnection(connectionString)
( 3) statement = conn.createStatement()
注意这里:创建statement时,可以传入关于resultSet的参数,包括并发性(ReadOnly或者Updatable),Scroll_Sensitive等等
这些参数都很重要,下面用错误来说明。
(4) 创建表:statement.execute(CREATE_TABLE_SQL) 注意创建表之前可以用conn提供的getMetaData来检查数据表是否已经存在
( 5) 插入:PreparedStatement ps= conn.prepareStatement(...?...) 用?表示需要替代的参数,然后用ps.setString(index, string)来fill in.
ps.executeUpdate()
(6) 删除同上
(7)修改,可以使用如插入一样的方法,也可以直接在ResultSet中修改,然后update到数据库中。
代码很简单:
ResultSet rs = statement.executeQuery(SQL)
rs.updateString(index, string)
rs.updateRow()
但是需要注意两点:
(1)并发性要设置成UPDATABLE(在创建statement时设置)
(2)查询SQL中不能出现order by,否则会认为是readonly.
(8) 最后是数据库的shutdown。步骤是:
try {
DriverManager.getConnection("jdbc:derby:;shutdown=true");
} catch (SQLException se) {
if ( se.getSQLState().equals("XJ015") ) {
System.out.println("Database shut down normally");
}else{
System.out.println("Database did not shut down normally");
}
传递shutdown的消息,然后引擎就会关闭。
另外一个问题是:如何计算resultset的长度。
三种方法:
(1)用一个i++ (2)rs.last() / rs.getRow() 注意使用这种方法时需要ResultSet.Scroll这个参数(在创建statement时)
再另外一点就是HashMap的使用,其实用法就是相当简单的,就是一个key,value,两个都是Object类型。
不过要注意使用iterator时,注意一开始获得的iterator对象是指向null的,需要next()一下才能获得对象。iterator就是指针,明白这个就好办了。
- PowerPersonal开发实录:从Database到User Interface
- Android 开发指南 翻译 User Interface -- Dialogs
- User Interface
- user interface
- 升级Struts,从2.1.8到2.3.16.1,过程实录
- 升级Hibernate,从3到4.2,过程实录
- 机器学习从0到1入门实录
- android2.2官方开发手册(02)-User Interface-用户界面
- Android 开发指南翻译开篇--User Interface -Styles and Themes
- Android 开发指南 翻译2 User Interface:XML Layouts
- Android 开发指南 翻译3:User Interface: Input Events
- iOS 开发学习之 User Interface(1)APP 生命周期
- iOS 开发学习之 User Interface(2)UIWindow 视窗
- iOS 开发学习之 User Interface(9)UITableView
- 从user用户切换到root用户
- 移植linux-2.6.32.2到mini2440开发板(实录)
- Agile User Interface Development
- DTrace Graphical User Interface
- Flex跨域访问的沙箱问题
- COM的几个问题
- asp.net 爬虫
- 最近有点忙
- 44b0 IIC24cXX读问题分析
- PowerPersonal开发实录:从Database到User Interface
- what will be the output of the following c code?
- Missing Constraint: Require-Bundle: org.eclipse.ui.forms ... ...
- 让Delphi程序只运行一个实例
- Java 调用cmd.exe命令
- 求助:修改sql2005排序规则
- c++位操作指令
- C++面试题大全(附参考答案)
- 2010-6-11 第七天