第一篇 数据库基础篇 2
第1章Java和数据库 2
1.1 Java概述 2
1.1.1跨平台性 2
1.1.2面向对象 2
1.1.3安全性 3
1.1.4简单性 3
1.1.5健壮性和自动内存管理 3
1.2 Java的开发和运行环境 3
1.2.1 JDK的安装 3
1.2.2配置JDK的环境变量 4
1.2.3 Tomcat的安装 5
1.3数据库概述 7
1.3.1关系型数据 7
1.3.2数据库模型 7
1.3.3 MySQL数据库的安装 7
1.3.4启动和登录MySQL 9
1.3.5 MySQL客户端工具的安装和使用 9
1.3.6 SQL.DDL与DML的概念 12
1.4数据持久层 13
1.4.1数据持久层的含义 13
1.4.2数据持久层设计 13
1.4.3数据持久层框架 13
1.5本章小结 14
第2章SQL语句基础之DDL 15
2.1 DDL基础 15
2.1.1列出数据库信息的SQL语句 15
2.1.2使用SQL语句切换数据库模式 16
2.1.3列出数据表的SQL语句 16
2.1.4查看表结构的SQL语句 17
2.1.5创建数据库模式的SQL语句 17
2.1.6删除数据库模式的SQL语句 18
2.1.7修改数据库模式的SQL语句 18
2.1.8 SQL语句创建表 18
2.1.9删除表SQL语句 19
2.1.10修改表结构SQL语句 19
2.2 DDL操作视图 20
2.2.1使用视图的原因 20
2.2.2 SQL语句创建视图 21
2.2.3在视图中添加CHECK约束 23
2.2.4创建只读视图 24
2.2.5删除视图 24
2.3本章小结 25
第3章SQL语句基础之DM L 26
3.1 SELECT语句基础 26
3.1.1选择特定的列 26
3.1.2计算列值 27
3.1.3使用NULL值参与计算 28
3.1.4设置列别名 28
3.1.5在SELECT语句中使用连接符 29
3.2 WHERE子句 30
3.2.1 WHERE子句 30
3.2.2 WHERE IN子句 31
3.2.3 WHERE NOT IN子句 31
3.2.4 WHERE BETWEEN子句 31
3.2.5 WHERE LIKE子句 32
3.2.6 WHERE IS NULL子句 33
3.2.7 WHERE子句中的逻辑操作 34
3.3 ORDER BY子句 35
3.4 GROUP BY和HAVING子句 36
3.4.1 GROUP BY子句 37
3.4.2 GROUP BY多列分组 38
3.4.3 HAVING子句 39
3.5 INSERT语句 39
3.5.1插入单行数据 40
3.5.2向有外键的数据库表插入数据 40
3.6 UPDATE语句 41
3.6.1修改单行数据 42
3.6.2修改有外键约束的表数据 42
3.7 DELETE语句 43
3.7.1删除满足条件的数据 43
3.7.2删除有外键约束的表数据 44
3.8本章小结 44
第4章PL/SQL 45
4.1 PL/SQL简介 45
4.1.1 PL/SQL的含义 45
4.1.2使用PL/SQL的原因 46
4.2 PL/SQL基础 48
4.2.1注释 48
4.2.2标识符命名规范 48
4.2.3大小写规范 48
4.2.4代码缩进格式 49
4.2.5基本语句块 49
4.2.6匿名语句块 50
4.2.7命名语句块 51
4.2.8触发器 51
4.2.9数据类型之标量类型 52
4.2.10数据类型之复合类型 52
4.2.11数据类型转换 52
4.3本章小结 54
第二篇JDBC篇 56
第5章JDBC技术基础 56
5.1 JDBC概述 56
5.1.1 JDBC的概念 56
5.1.2 JDBC和数据库数据类型的转化 57
5.2 JDBC API 57
5.2.1 Connection连接对象 58
5.2.2 Statement对象 58
5.2.3 PreparedStatement对象 59
5.2.4 ResultSet结果集对象 61
5.3 JDBC操作数据库 62
5.3.1实现JDBC连接MySQL数据库 62
5.3.2使用JDBC向数据库表插入数据 64
5.3.3使用JDBC查询数据库表数据 67
5.3.4使用JDBC查询指定条件的数据 68
5.3.5使用JDBC删除表数据 70
5.3.6使用JDBC修改表数据 71
5.4本章小结 72
第6章JDBC的高级特性 73
6.1 PreparedStatement预编译对象 73
6.1.1创建PreparedStatement对象 73
6.1.2传递参数 73
6.1.3批处理SQL语句 74
6.1.4 PreparedStatement传递对象参数 75
6.2 CallableStatement存储过程对象 75
6.2.1创建CallableStatement对象 76
6.2.2 OUT、IN及INOUT参数 76
6.2.3存储过程的Object对象 78
6.2.4 CallableStatement存储过程对象的使用 78
6.3 BatchedUpdate对象 79
6.3.1 BatchedUpdate对象涉及的对象 79
6.3.2 BatchedUpdate对象的使用 81
6.4 Rowset行集合对象 83
6.4.1行集合 83
6.4.2行集合的接口 84
6.5 JDBC的事务 86
6.5.1事务的隔离级别 86
6.5.2提交事务 87
6.5.3事务的存储点 88
6.5.4 JDBC使用事务实例 88
6.6本章小结 90
第7章JDBC结合Servlet与JSP的应用 91
7.1 S ervlet概述 91
7.1.1 Servlet的概念 91
7.1.2 S ervlet接口 92
7.1.3一个简单的Servlet例子 93
7.1.4 Servlet的生命周期 94
7.1.5 Servlet的请求转发 95
7.1.6 S ervlet中的重定向 95
7.2 JDBC在Servlet中的使用 96
7.2.1页面的数据表单 96
7.2.2添加数据 97
7.2.3查看单条数据 99
7.2.4显示一张表中的全部数据 101
7.2.5修改数据 102
7.2.6删除数据 107
7.3 JSP概述 109
7.3.1 JSP的指令 109
7.3.2 JSP中的对象 110
7.3.3 JSP中的自定义标签 111
7.3.4 EL表达式 112
7.4 JDBC结合JSP使用 112
7.4.1添加数据 113
7.4.2显示全部数据 114
7.4.3显示单条数据信息 116
7.4.4修改数据 118
7.4.5删除数据 121
7.4.6分页显示 122
7.5 JDBC结合Servlet和JSP使用的例子 125
7.5.1连接数据库 125
7.5.2添加数据 126
7.5.3查询表中的全部数据 130
7.5.4修改数据 134
7.5.5删除数据 139
7.6本章小结 141
第三篇Hibernate篇 144
第8章Hibernate基础 144
8.1 Hibernate概述 144
8.1.1 ORM简介 144
8.1.2 Hibernate的概念 145
8.2在MyEclipse中添加Hibernate的jar包 145
8.3在Java程序中使用Hibernate 147
8.3.1创建Web工程并搭建框架 147
8.3.2连接数据库 147
8.3.3创建数据库表 148
8.3.4通过表自动生成实体类和映射文件 149
8.3.5编辑Hibernate的配置文件 151
8.3.6编辑HibernateSessionFactory类 153
8.3.7使用Hibernate添加数据 154
8.4在Java Web程序中使用Hibernate 155
8.4.1创建工程并搭建Hibernate框架 156
8.4.2编写数据持久层 159
8.4.3查询所有数据 161
8.4.4添加数据 162
8.4.5修改数据 164
8.4.6删除数据 167
8.5本章小结 168
第9章Hibernate API简介 169
9.1 Configuration类 169
9.2 SessionFactory接口 169
9.2.1 SessionFactory接口简介 170
9.2.2 SessionFactory接口的使用 170
9.3 session接口 170
9.3.1 session接口简介 170
9.3.2 session接口的使用 171
9.4 Trasaction接口 173
9.4.1 Trasaction接口简介 173
9.4.2 Trasaction接口的使用 174
9.5 Hibernate配置参数介绍 174
9.5.1配置文件参数 174
9.5.2加载实体类映射文件的其他方法 176
9.5.3通过Confiiguration获取SessionFactory 177
9.5.4数据库连接 177
9.5.5 Hibernate配置中的可选参数 179
9.5.6在Hibernate中配置日志文件 180
9.6本章小结 181
第10章Hibernate映射之实体映射 182
10.1实体类的映射 182
10.1.1使用@注解配置实体类映射 182
10.1.2使用XML文件配置实体类映射 184
10.1.3在hibernate.cfg.xml文件中配置实体类映射 185
10.1.4配置主键映射 185
10.1.5主键生成规则 186
10.1.6使用@注解配置普通属性映射 188
10.1.7使用XML文件配置普通属性映射 189
10.1.8配置临时属性映射 189
10.2 Hibernate中的悲观锁和乐观锁 190
10.2.1什么是悲观锁 190
10.2.2悲观锁的使用 190
10.2.3什么是乐观锁 191
10.2.4乐观锁的配置 191
10.3本章小结 191
第11章Hibernate的关联映射 19
11.1一对一关系的单向关联映射 192
11.2一对一关系的双向关联映射 194
11.2.1分析表关系 194
11.2.2编写实体类和映射文件 194
11.2.3编写HibernateSessionFactory类 197
11.2.4编写Hibernate的配置文件 198
11.2.5编写日志文件 198
11.2.6编写生成数据库表的类 200
11.2.7编写测试类 200
11.3一对多关系的单向关联映射 202
11.4一对多关系的双向关联映射 204
11.4.1分析表关系 205
11.4.2编写实体类和映射文件 205
11.4.3编写HibernateSessionFactory类 207
11.4.4编写Hibernate的配置文件 207
11.4.5编写日志文件 207
11.4.6编写生成数据库表的类 207
11.4.7编写测试类 208
11.5多对多关系的单向关联映射 210
11.6多对多关系的双向关联映射 212
11.6.1分析表关系 212
11.6.2编写实体类和映射文件 212
11.6.3编写Hibernate的配置文件 215
11.6.4编写HibernateSessionFactory类 215
11.6.5编写生成数据库表的类 215
11.6.6编写测试类 215
11.7本章小结 219
第12章HQL查询语言 220
12.1 HQL语言基础 220
12.1.1 HQL语法 220
12.1.2 HQL中的大小写 220
12.1.3查询中使用包名 221
12.1.4查询结果的返回类型 221
12.2查询结果同时返回多个对象 222
12.2.1返回List集合 222
12.2.2返回对象数组Object[] 222
12.2.3返回实体类对象 223
12.2.4返回Map集合 223
12.3 HQL的高级应用 223
12.3.1条件查询 223
12.3.2 HQL中的统计函数 224
12.3.3 HQL分页显示查询结果 225
12.3.4 HQL跨表查询 225
12.3.5 HQL级联查询 225
12.3.6使用数据库SQL 226
12.3.7使用@注解配置命名查询 226
12.3.8使用@QueryHint扩展查询 227
12.3.9同时设置多个命名查询 227
12.3.10在XML中配置命名查询 227
12.4本章小结 228
第13章Hibernate的高级特性 229
13.1 Hibernate的缓存机制 229
13.1.1一级缓存和二级缓存的含义 229
13.1.2缓存的使用范围 230
13.1.3一级缓存和二级缓存的区别 230
13.1.4一级缓存的管理 231
13.1.5二级缓存的管理 231
13.2 Hibernate的回调机制 232
13.2.1 Lifecycle接口 232
13.2.2 Validatable接口 234
13.2.3 Interceptor接口 234
13.3 Hibernate方言 236
13.4本章小结 236
第14章Hibernate结合JSP使用 237
14.1搭建Hibernate框架 237
14.1.1创建数据库表 237
14.1.2编写数据库表对应的实体类和映射文件 238
14.1.3编写Hibernate的配置文件 240
14.1.4编写HibernateSessionFactory类 240
14.2操作员工表 241
14.2.1添加员工信息 241
14.2.2查询全部员工信息 244
14.2.3修改员工信息 245
14.2.4删除员工信息 249
14.3操作部门表 250
14.3.1添加部门信息 250
14.3.2查询全部部门信息 252
14.3.3删除部门信息 253
14.4 Hibernate的分页查询 255
14.4.1数据库访问层代码 255
14.4.2 Servlet层的代码 256
14.4.3 JSP页面分页 257
14.5本章小结 258
第四篇iBatis篇 260
第15章iBatis概述 260
15.1什么是iBatis 260
15.1.1 iBatis框架 260
15.1.2 iBatis框架和Hibernate框架的区别 260
15.2 iBatis基础 261
15.2.1使用iBatis的原因 261
15.2.2 iBatis框架的搭建 261
15.3 iBatis的使用 262
15.3.1搭建iBatis框架 262
15.3.2创建数据库表 262
15.3.3创建实体类和映射文件 263
15.3.4添加数据 264
15.3.5根据id查询数据 266
15.3.6查询全部数据 267
15.3.7修改数据 269
15.3.8删除数据 270
15.4本章小结 271
第16章iBatis的特性 272
16.1 iBatis的配置文件 272
16.1.1配置文件中的Settings节点 272
16.1.2配置文件中的transactionManager节点 273
16.1.3 sqlMap节点 274
16.2 iBatis的映射文件 275
16.2.1实体类和数据库表的映射 275
16.2.2配置SQL语句的节点 276
16.3 SqlMapClient组件 277
16.3.1创建SqlMapClient 277
16.3.2 SqlMapClient基本操作 278
16.4本章小结 280
第17章JSP、 Servlet和iBatis结合使用 281
17.1搭建iBatis开发环境 281
17.1.1配置iBatis配置文件 281
17.1.2数据库表 282
17.1.3实体类和映射文件 282
17.1.4编写处理中文乱码过滤器 283
17.2添加数据 284
17.2.1编写添加数据的JSP页面 284
17.2.2编写添加数据的Servlet 285
17.2.3编写添加数据实现类 286
17.2.4添加数据 287
17.3查看全部数据 287
17.3.1编写查询全部数据的Servlet 287
17.3.2编写查询全部数据的实现类 288
17.3.3编写显示全部数据的页面 289
17.4修改数据 290
17.4.1编写查询单条数据Servlet 290
17.4.2编写查询单条数据的实现类 291
17.4.3编写修改数据页面 291
17.4.4编写修改数据的Servlet 292
17.4.5编写修改数据的实现类 293
17.5删除数据 294
17.5.1编写删除数据的Servlet 294
17.5.2编写删除数据实现类 295
17.6 本章小结 295
第五篇XML篇 298
第18章XML存储数据 298
18.1 XML的概述 298
18.1.1 XML的含义 298
18.1.2 XML的格式 299
18.1.3 XML的基本结构 300
18.1.4 XML中常用的转义字符 301
18.2解析XML 302
18.2.1使用DOM解析XML 302
18.2.2使用SAX解析XML 305
18.3使用JSP解析XML 308
18.3.1 JSP解析XML的基本步骤 308
18.3.2 XML与Java的映射 309
18.3.3 Document的Node节点 309
18.3.4 Element的Node节点 310
18.3.5 Attribute的Node节点 310
18.3.6 Text的Node节点 311
18.3.7使用JSP存储数据到XML的例子 311
18.4本章小结 322
第六篇 项目实战篇 324
第19章 学籍管理系统 324
19.1需求分析 324
19.2数据库模块 324
19.3登录模块的设计 326
19.3.1设计思想 326
19.3.2登录界面的实现 327
19.4学生信息模块 329
19.4.1设计思想 329
19.4.2学生信息模块界面的实现 329
19.4.3添加学生信息模块 332
19.4.4删除学生信息模块 336
19.4.5修改学生学籍信息 339
19.5学生成绩管理 343
19.5.1学生成绩录入模块 343
19.5.2学生成绩删除模块 347
19.5.3学生成绩修改模块 350
19.6 查询管理 354
19.6.1学生信息查询 354
19.6.2查询学生成绩信息 358
19.7退出模块 362
19.8 教师管理模块 363
19.8.1添加教师信息模块 367
19.8.2删除教师信息模块 371
19.8.3修改教师信息模块 373
19.8.4教师信息查询模块 377
19.9本章小结 382