前言 1
第1周 2
第1天 JDBC简介 2
1.1 小应用程序和应用程序 2
1.2 Java的接口、对象和异常 3
1.2.1 Java中的程序接口 3
1.2.2 Java对象 4
1.2.3 JDBC的异常类 5
1.3 Java中存在的问题 5
1.5 小结 6
1.4 利用JDBC代替CGI 6
1.6 作业 7
1.6.1 测验题 7
第2天 数据库概念 8
2.1 数据库的表 8
2.2 主码(Primary Keys) 9
2.3 外码(Foreign Keys) 9
2.4 索引 11
2.5 列的类型 12
2.5.4 Time 13
2.5.3 Date 13
2.5.1 Char 13
2.5.2 VarChar 13
2.5.5 DateTime 14
2.5.6 Binary 14
2.5.7 Decimal 14
2.5.8 Integer 14
2.5.9 Numeric 14
2.5.11 NULL(空)数据值 15
2.5.12创建列并指定数据类型 15
2.5.10 TimeStamp 15
2.6 存储过程 16
2.7 触发器 17
2.8 目录表 18
2.9 SQL的基本内容(数据操纵操纵语言) 18
2.9.1 SQL select 19
2.9.2 Select子句 19
2.9.3 From子句 21
2.9.4 Where子句 21
2.9.5 Order By子句 22
2.9.7 Having子句 23
2.9.6 Group By子句 23
2.9.8 SQL Delete语句 24
2.9.9 SQL Update语句 25
2.9.10 SQL Insert语句 25
2.10 SQL的基本内容(数据定义语言) 26
2.10.1 CREATE TABLE 26
2.10.3 CREATE PROCEDURE 27
2.10.4 DROP PROCEDURE 27
2.10.2 DROP TABLE 27
2.10.5 CREATE INDEX 28
2.10.6 DROP INDEX 28
2.10.7 CREATE TRIGGER 28
2.11 小结 28
2.12 作业 29
2.12.1 测验题 29
2.12.2 练习题 29
第3天 连接数据库 30
3.1 JDBC解决方案 30
3.2.1 scceptsURL () 31
3.2 Driver接口 31
3.2.2 connect () 32
3.2.3 getMajorVersion ()和getMinorVersion () 33
3.2.4 getPropertyInfo () 33
3.2.5 jdbcCompliant () 34
3.3 DriverManager对象 34
3.3.1 deregisterDriver () 35
3.3.2 getConnection () 35
3.3.3 getDriver () 36
3.3.5 getLoginTimeout () 36
3.3.8 registerDriver () 37
3.3.9 setLoginTimeout () 37
3.3.6 getLogStream () 37
3.3.7 println () 37
3.3.10 setLogStream () 38
3.4 Connection对象 38
3.5 本机数据库和ODBC数据库 38
3.5.1 数据库产品 39
3.7.2 练习题 40
3.7.1 测验题 40
3.7 作业 40
3.6 小结 40
第4天 数据库的事务处理 41
4.1 作业的逻辑单位 41
4.2 事务日志 41
4.3 AutoCommit 42
4.4 事务的提交 42
4.5 事务的回滚 42
4.6.2 数值函数 43
4.6.1 统计函数 43
4.6 Sybase SQL Anywhere的函数 43
4.6.3 字符串函数 44
4.6.4 日期和时间函数 45
4.6.5 系统函数 46
4.7 小结 47
4.8 作业 47
4.8.1 测验题 47
4.8.2 练习题 47
5.1 Connection接口 48
5.1.1 创建Connection对象 48
第5天 JDBC接口 48
5.1.2 Connection接口的方法 50
5.2 Statement接口 54
5.2.1 创建Statement对象 54
5.2.2 Statement接口的方法 55
5.3 DatabaseMetaData接口 60
5.3.1 创建DatabaseMetaData对象 61
5.4 小结 71
5.5 问与答 71
5.6.2 练习题 72
5.6 作业 72
5.6.1 测验题 72
第6天 PreparedStatement和CallableStatement 73
6.1 动态SQL语句 73
6.2 存储过程 74
6.2.1 IN参数 76
6.2.2 OUT参数 76
6.2.3 INOUT参数 76
6.3 PreparedStatement接口 76
6.3.5 setAsciiStream () 78
6.3.4 executeUpdate () 78
6.3.6 setInt () 78
6.3.2 execute () 78
6.3.3 executeQuery () 78
6.3.1 clearParameters () 78
6.3.7 setString () 79
6.3.8 DynamicSQL应用程序 79
6.4 CallableStatement接口 80
6.4.1 getBoolean () 81
6.4.6 wasNull () 82
6.4.5 registerOutParameter () 82
6.4.4 getObject () 82
6.4.3 getDate () 82
6.4.2 getByte () 82
6.4.7 CallableStatement实例程序 83
6.5 小结 84
6.6 作业 84
6.6.1 测验题 85
6.6.2 练习题 85
第7天 结果集和元数据 86
7.1 得到ResultSet对象 86
7.1.1 得到结果 87
7.1.2 ResultSet对象的方法 89
7.2 ResultSetMetaData对象 92
7.2.1 getCatalogName () 93
7.2.2 getColumnCount () 93
7.2.3 getColumnName () 94
7.2.6 getColumnType () 96
7.2.8 getSchemaName () 96
7.2.7 getPrecision () 96
7.2.5 getColumnLabel () 96
7.2.4 getColumnDisplaySize () 96
7.2.9 getTableName () 97
7.2.10 isAutoIncrement () 98
7.2.11 isCaseSensitive () 98
7.2.12 isCurrency () 98
7.2.13 isNullable () 98
7.2.14 isSigned () 98
7.2.15 isDefinitelyWritable (),isReadOnly ()和isWritable () 99
7.5.1 测验题 101
7.5 作业 101
7.3 小结 101
7.4 问与答 101
7.5.2 练习题 102
第1周回顾 103
第2周 105
第8天 创建JDBC/SQL对象 105
8.1 SQL Select对象 105
8.1.1 Select () 107
8.1.2 next () 109
8.1.4 first () 110
8.1.3 previous () 110
8.1.5 last () 111
8.1.6 getRow () 111
8.1.7 setRow () 111
8.1.8 getItem () 112
8.1.9 row Count () 113
8.1.10 columnCount () 113
8.1.11 Select对象的完整代码 113
8.2.1 SQL Insert基本知识 116
8.2 SQL Insert对象 116
8.2.2 Insert对象 117
8.2.3 Insert构造方法 117
8.2.4 getSuccess () 118
8.2.5 Insert对象的完整代码 118
8.3 SQL Delete对象 118
8.3.1 Delete对象基础知识 119
8.3.2 Delete(Connection)方法 119
8.3.3 Delete(Connection,String)方法 119
8.3.6 Delete对象的完整代码 120
8.3.4 deleteALL()方法 120
8.3.5 getSuccess ()方法 120
8.4 SQL Update对象 121
8.5 小结 122
8.6 作业 123
8.6.1 测验题 123
8.6.2 练习题 123
第9天 数据接口 124
9.1 为什么使用接口 124
9.2 DataConnection接口 125
9.2.1 setConnection () 126
9.2.2 getConnection () 127
9.2.3 setSQL () 127
9.2.4 getSQL () 127
9.2.5 retrieve () 127
9.3 DataUpdate接口 128
9.3.1 setUpdateTable () 128
9.3.2 getUpdateTable () 129
9.3.3 update () 129
9.3.4 previewStatement () 129
9.3.5 setUpdateColumn () 130
9.3.6 getUpdateColumn () 130
9.4 DataComponent接口 130
9.4.1 gerRow () 131
9.4.2 setRow () 131
9.4.5 reset () 132
9.4.6 getItem () 132
9.4.3 rowCount () 132
9.4.4 columnCount () 132
9.4.7 setItem () 133
9.4.8 getColumnName () 133
9.4.9 getColumnType () 133
9.4.10 getColumnIndex () 133
9.5 DataNavigation接口 134
9.5.1 next () 134
9.5.4 last () 135
9.6 小结 135
9.5.3 first () 135
9.5.2 previous () 135
9.7 问与答 136
9.8 作业 136
9.8.1 测验题 136
9.8.2 练习题 136
第10天 DataLabel,DataField和DataArea组件 137
10.1 为什么使用数据组件 137
10.2 创建组件的基本成分 137
10.2.4 最大记录数 138
10.2.3 当前记录位置 138
10.2.5 更新表 138
10.2.2 SQL语句 138
10.2.1 Connection对象 138
10.2.6 更新列 139
10.2.7 初始数据值 139
10.2.8 用户输入的数据值 139
10.2.9 列的数目、名称和类型 139
10.2.10 getRow () 140
10.2.11 setRow (int) 140
10.2.14 reset () 141
10.2.13 columnCount () 141
10.2.12 rowCount () 141
10.2.15 getItem (int,int) 142
10.2.16 setItem (int,int,String) 142
10.2.17 getColumnName (int) 143
10.2.18 getColumnType (int) 143
10.2.19 getColumnIndex (String) 143
10.3 构造组件 144
10.3.1 DataField () 144
10.3.5 DataField (int,Connection,String) 145
10.3.4 DataField (Connection,String) 145
10.3.2 DataField (int) 145
10.3.6 DataField (int,Connection,String,boolean) 146
10.3.7 DataField (Connection,String,boolean) 146
10.4 连接组件 147
10.4.1 setConnection(Connection) 147
10.4.2 setConnection(Connection,boolean) 147
10.4.5 getSQL() 148
10.4.6 retrieve () 148
10.4.4 setSQL (String) 148
10.4.3 setConnection () 148
10.5 导航组件 151
10.5.1 next () 151
10.5.2 previous () 152
10.5.3 first ()和last () 152
10.6 更新组件 153
10.6.1 setUpdateTable () 153
10.6.2 getUpdateTable () 153
10.6.3 update () 154
10.6.4 previewStatement () 154
10.6.6 getUpdateColumn () 155
10.6.5 setUpdateColumn () 155
10.6.7 转换成DataLabel组件和DataArea组件 156
10.6.8 DataField组件的全部代码列表 156
10.7 使用组件 165
10.8 小结 167
10.9 问与答 167
10.10.1 测验题 168
10.10.2 练习题 168
10.11 作业 168
第11天 DataList和DataChoice组件 169
11.1 为什么使用数据组件 169
11.2 创建组件的基本成分 169
11.2.1 Connection对象 170
11.2.2 SQL语句 170
11.2.3 当前记录位置 170
11.2.4 最大记录数 170
11.2.10 数据列表和计数 171
11.2.8 用户输入的数据值 171
11.2.9 列的数目、名称和类型 171
11.2.6 更新列 171
11.2.5 更新表 171
11.2.7 原始数据值 171
11.2.11 getRow () 172
11.2.12 setRow (int) 172
11.2.13 rowCount () 173
11.2.14 columnCount () 173
11.2.15 reset () 173
11.2.16 getItem () 173
11.2.20 getColumnIndex (String) 174
11.2.21 getValueIndex () 174
11.2.18 getColumnName () 174
11.2.19 getColumnType () 174
11.2.17 setItem () 174
11.3 构造组件 175
11.3.1 DataList () 175
11.3.2 DataList (int) 175
11.3.3 DataList (int,Connection,String) 176
11.3.4 DataList (Connection,String,boolean) 176
11.3.5 DataList (int,Connection,String,boolean) 176
11.3.6 addItem(String) 177
11.4 连接组件 178
11.3.7 addItem (String,int) 178
11.3.8 setMultipleSelections () 178
11.4.1 setConnection (Connection) 179
11.4.2 setConnection (Connection,boolean) 179
11.4.3 getConnection () 179
11.4.4 setSQL (String) 179
11.4.5 getSQL () 179
11.4.6 retrieve () 179
11.5 导航组件 181
11.5.1 next () 182
11.5.2 previous () 182
11.5.3 first ()和last () 183
11.6.2 gerUpdateTable () 184
11.6.3 update () 184
11.6.1 setUpdateTable () 184
11.6 更新组件 184
11.6.4 previewStatement () 185
11.6.5 setUpdateColumn () 185
11.6.6 getUpdateColumn () 185
11.6.7 转换到DataChoice组件 185
11.6.8 DataList组件的全部代码列表 185
11.7 使用组件 192
11.8 小结 194
11.9 作业 194
11.9.1 测验题 194
11.9.2 练习题 194
12.2 创建组件的基本成分 195
17.5.1 测验题 195
第12天 DataCheckBox组件 195
12.1 为什么使用数据组件 195
12.2.3 当前记录位置 196
12.2.4 最大记录数 196
12.2.5 更新表 196
12.2.1 Connection对象 196
12.2.2 SQL语句 196
12.2.9 列的数目、名称和类型 197
12.2.10 开/关变量 197
18.1.1 ActionListener 197
12.2.7 原始数据值 197
12.2.6 更新列 197
12.2.8 用户输入的数据值 197
12.2.11 getRow () 198
12.2.12 setRow () 198
12.2.17 setItem () 199
12.2.14 columnCount () 199
12.2.18 getColumnName () 199
12.2.16 getItem () 199
12.2.15 reset () 199
12.2.13 rowCount () 199
12.2.19 getColumnType () 200
12.2.20 getColumnIndex () 200
12.2.21 setOnValue () 200
12.2.22 setOffValue () 200
12.3 构造组件 200
12.3.2 DataCheckBox (String) 201
12.3.3 DataCheckBox (String,CheckboxGroup) 201
12.3.1 DataCheckBox () 201
12.3.4 DataCheckBox (Connection) 201
12.3.5 DataCheckBox (Connection,String,boolean) 202
12.3.6 DataCheckBox (String,Connection,String,boolean) 202
12.4.1 setConnection (Connection) 203
12.4.2 setConnection (Connection,boolean) 203
12.4.3 getConnection () 203
12.4.4 setSQL () 203
12.4.5 getSQL () 203
12.4 连接组件 203
12.4.6 retrieve () 204
12.5 导航组件 204
12.5.1 next () 204
12.5.2 previous () 205
12.5.3 first ()和last () 205
12.6.1 setUpdateTable () 206
12.6 更新组件 206
12.6.2 getUpdateTable () 207
12.6.3 update () 207
12.6.4 previewStatement () 207
12.6.5 setUpdateColumn () 207
12.6.6 getUpdateColumn () 207
12.6.7 DataCheckBox组件的完整代码 207
12.7 使用组件 214
12.9.1 测验题 216
12.9 作业 216
12.8 小结 216
12.9.2 练习题 217
第13天 DataNavigator组件 218
13.1 为什么使用数据组件 218
13.2 创建组件的基本成分 218
13.2.1 getRow () 220
13.2.2 setRow () 220
13.2.3 reset () 221
13.3 构造组件 222
13.4 连接组件 223
13.4.1 setConnecTion (Connection) 223
13.4.2 setConnection (Connection,boolean) 223
13.4.3 setSQL () 224
13.4.4 retrieve () 224
13.5 导航组件 225
13.5.1 next () 226
13.5.2 previous () 226
13.6 更新组件 227
13.5.3 first ()和last () 227
13.6.1 setUpdateTable () 228
13.6.2 update () 228
13.6.3 setUpdateColumn () 229
13.7 连接其他组件 229
13.7.1 DataNavigator组件的全部代码列表 230
13.8 使用组件 236
13.9 小结 237
13.10 作业 237
13.10.2 练习题 238
13.10.1 测验题 238
14.1 为什么使用DataPanel组件 239
14.2 创建组件的基本成分 239
第14天 DataPanel组件 239
14.2.1 getRow () 241
14.2.2 setRow () 241
14.2.3 rowCount () 241
14.2.4 columnCount () 241
14.2.5 reset () 241
14.3 连接组件 242
14.2.10 getColumnIndex () 242
14.2.9 getColumnType () 242
14.2.6 getItem () 242
14.2.8 getColumnName () 242
14.2.7 setItem () 242
14.3.5 getSQL () 243
14.3.6 retrieve () 243
14.3.2 setConnection (Connection,boolean) 243
14.3.3 getConnection () 243
14.3.1 setConnection (Connection) 243
14.3.4 setSQL (String) 243
14.4 导航组件 245
14.4.1 next () 245
14.4.2 previous () 246
14.4.3 first ()与last () 246
14.5 使用组件 247
14.6 小结 249
14.7 作业 249
14.7.1 测验题 249
14.7.2 练习题 250
第2周回顾 251
15.1 主窗口的基本成分 253
第15天 创建Knowledge Base应用程序图形用户界面(GUI) 253
第3周 253
15.2 创建窗口构造函数 254
15.3 在主窗口中创建对象 256
15.3.1 dbConnect () 256
15.3.2 getArticles () 257
15.3.3 buildMenu () 258
15.4 处理主窗口中的事件 259
15.4.1 addArticle () 261
15.4.2 deleteArticle () 261
15.4.3 viewArticles () 262
15.4.4 searchArticles () 263
15.4.5 displayAbout () 264
15.4.6 displaySearchArticles () 264
15.5 创建splash屏幕 266
15.6 小结 267
15.7 作业 268
15.7.1 测验题 268
15.7.2 练习题 268
16.1 创建About对话框 269
第16天 处理Knowledge Base中的事件 269
16.2 Add Article对话框 270
16.1.1 handleEvent () 270
16.3 构造Add Article对话框 272
16.3.1 getResources () 275
16.3.2 getAuthors () 277
16.4 在Add Article对话框中处理事件 279
16.4.1 addArticle () 280
16.5 小结 283
16.6 作业 283
16.6.1 测验题 283
16.6.2 练习题 284
第17天 在Knowledge Base中使用数据库 285
17.1 显示文章 285
17.1.1 displayArticle构造函数 285
17.1.2 handleEvent () 287
17.2 删除文章 288
17.2.1 deleteArticleDialog的handleEvent () 290
17.2.2 deleteArticle () 290
17.3 查询文章 292
17.3.1 searchArticlesDialog的handleEvent () 293
17.4 小结 294
17.5.2 练习题 295
17.5 作业 295
第18天 创建一个Employee Resource小应用程序 296
18.1 Java 1.1事件代理模式 296
18.1.2 ComponentListener 298
18.1.3 KeyListener 299
18.1.4 MouseListener 300
18.1.5 WindowListener 301
18.2 弹出式菜单 302
18.3 快捷菜单 303
18.4 序列化 304
18.5 小结 307
18.6 作业 307
18.6.1 测验题 307
18.6.2 练习题 308
第19天 在Employee Resource小应用程序中处理事件 309
19.1 Employee Manager应用程序 309
19.2.1 Employee Server构造函数 310
19.2 Employee Server应用程序 310
19.3 IDList组件 313
19.3.1 getSelectedID ()方法 314
19.3.2 actionPerformed ()方法 314
19.4 EmployeeMenu类 315
19.4.1 setList ()方法 316
19.4.2 actionPerformed ()方法 316
19.5 服务器线程 320
19.5.1 GetMenu对象 320
19.5.2 GetEmployeeList对象 322
19.5.3 AddDialog对象 323
19.5.4 DeleteDialog对象 324
19.5.5 ViewDialog对象 326
19.5.6 Delete对象 327
19.5.7 Add对象 328
19.6 小结 330
19.7 作业 330
19.7.1 测验题 330
19.7.2 练习题 331
20.1.1 对话构造函数 332
第20天 创建Employee Resource应用程序服务器 332
20.1 删除雇员信息的对话 332
20.1.2 actionPerformed ()方法 335
20.2 查看雇员信息的对话 336
20.2.1 构造方法 336
20.2.2 actionPerformed ()方法 338
20.3 增加雇员信息的对话 338
20.4 客户应用程序Stub 341
20.5 小结 343
20.6.2 练习题 344
20.6 作业 344
20.6.1 测验题 344
第21天 JDBC及其特性 345
21.1 数据库基础 345
21.1.1 Select语句 345
21.1.2 Insert语句* 345
21.1.3 Delete语句 345
21.2.1 CallableStatement接口 346
21.2 Java JDBC API 346
21.1.5 DDL 346
21.1.4 Update语句 346
21.2.2 Connection接口 347
21.2.3 DatabaseMetaData接口 347
21.2.4 Driver接口 347
21.2.5 PreparedStatement接口 347
21.2.6 ResultSet接口 347
21.2.7 ResultSetMetaData接口 347
21.2.8 Statement接口 347
21.3 Java 1.1 347
21.4 JavaBeans 348
21.5 网络计算机 348
21.3.1 Java 1.1的事件代理模式 348
21.3.3 Java 1.1序列化操作 348
21.3.2 Java 1.1弹出式菜单和快捷菜单 348
21.6 Java应用程序 349
21.7 Java小应用程序 349
21.8 小结 349
第3周回顾 350
A.2.1 测验题答案 351
A.2 第2天“数据库概念” 351
A.1 第1天“JDBC简介” 351
附录A 测验题与练习题答案 351
A.1.1 测验题答案 351
A.2.2 练习题答案 352
A.3 第3天“连接数据库” 352
A.3.1 测验题答案 352
A.3.2 练习题答案 353
A.4 第4天“数据库的事务处理” 353
A.4.1 测验题答案 353
A.5.1 测验题答案 354
A.4.2 练习题答案 354
A.5 第5天“JDBC接口” 354
A.5.2 练习题答案 355
A.6 第6天“PreparedStatement和CallableStatement” 355
A.6.1 测验题答案 355
A.6.2 练习题答案 356
A.7 第7天“结果集和元数据” 356
A.7.1 测验题答案 356
A.8.1 测验题答案 357
A.7.2 练习题答案 357
A.8 第8天“创建JDBC/SQL对象” 357
A.8.2 练习题答案 358
A.9 第9天“数据接口” 358
A.9.1 测验题答案 358
A.9.2 练习题答案 358
A.10 第10天“DataLabel,DataField和DataArea组件” 359
A.10.1 测验题答案 359
A.10.2 练习题答案 359
A.11 第11天“DataList和DataChoice组件” 360
A.11.1 测验题答案 360
A.11.2 练习题答案 360
A.12 第12天“DataCheckBox组件” 361
A.12.1 测验题答案 361
A.12.2 练习题答案 361
A.13.2 练习题答案 362
A.14 第14天“DataPanel组件” 362
A.14.1 测验题答案 362
A.13.1 测验题答案 362
A.13 第13天“DataNavigator组件” 362
A.14.2 练习题答案 363
A.15 第15天“创建Knowledge Base应用程序图形用户界面(GUI)” 363
A.15.1 测验题答案 363
A.15.2 练习题答案 364
A.16 第16天“处理Knowledge Base中的事件” 364
A.16.1 测验题答案 364
A.16.2 练习题答案 364
A.17.2 练习题答案 365
A.17.1 测验题答案 365
A.17 第17天“在Knowledge Base中使用数据库” 365
A.18 第18天“创建一个Employee Resource小应用程序” 366
A.18.1 测验题答案 366
A.18.2 练习题答案 366
A.19 第19天“在Employee Resource小应用程序中处理事件” 366
A.19.1 测验题答案 366
A.19.2 练习题答案 367
A.20 第20天“创建Employee Resource应用程序服务器” 367
A.20.1 测验题答案 367
A.20.2 练习题答案 368