Hibernate开发与实战

副标题:无

作   者:刘伟,张利国编著

分类号:

ISBN:9787121092848

微信扫一扫,移动浏览光盘

简介

  《Hibernate开发与实战》采用理论阐述、实例项目、视频讲解相结合的方式,全面讲解了Hibernate Core、Hibernate Annotations、Hibernate Search、Hibernate EntityManager等内容。   全书共23章。第1~18章,讲解Hibernate Core的内容。第19章讲解Hibernate Annotations内容。第19章讲解Hibernate Anonations和Hibernate EntityManager的内容。第20章讲解Hibernate Search的内容。第21章讲解Hibernate与Struts 2框架如何进行整合开发。第22章讲解Hibernate与Spring框架如何进行整合开发。第23章,则详细讲解如何组合运用Hibernate、Struts 2和Spring框架,开发一个完整的网络博客系统。   全书结构严谨,层次清晰,语言生动,论述精准而深刻,程序实例丰富实用。《Hibernate开发与实战》需要读者具有Java编程语言和HTML的基础。《Hibernate开发与实战》还提供了大量的实例代码,读者可以自由使用,这些代码非常实用,适合解决Hibernate开发中的实际问题。《Hibernate开发与实战》不仅适合用作普通高校或职业培训教材,更是Hibernate初学者和开发者的首选参考书。

目录

第1章 hibernate起源. 1

1.1 orm框架 1

1.2 orm核心理念 2

1.3 持久层概念 3

1.4 hibernate 3

1.4.1 hibernate core 4

1.4.2 hibernate annotations 4

1.4.3 hibernate entitymanager 4

1.4.4 hibernate search 4

1.4.5 hibernate shards 4

1.4.6 hibernate validator 5

1.4.7 hibernate tools 5

1.4.8 nhibernate 5

1.4.9 jboss seam 5

1.5 下载hibernate 5

1.6 使用hibernate的第1个例子 6

1.6.1 建立guestbook表 6

1.6.2 新建chapter01_first项目 7

1.6.3 项目文件列表 8

1.6.4 编写hibernate.cfg.xml 9

.1.6.5 编写guestbook.java 10

1.6.6 编写guestbook.hbm.xml 11

1.6.7 hibernatetest.java 13

1.6.8 运行hibernatetest程序 14

1.6.9 chapter01_first项目的运行过程 14

第2章 hibernate的核心接口与类 16

2.1 configuration类 16

2.1.1 hibernate配置文件 17

2.1.2 在应用程序中设置新的属性值 18

2.1.3 hibernate的核心配置信息 18

2.1.4 数据库方言类 19

2.2 sessionfactory接口 20

2.3 session接口 20

2.3.1 save()方法 21

2.3.2 get()方法 21

2.3.3 load()方法 22

2.3.4 update()方法 22

2.3.5 delete()方法 23

2.4 transaction接口 24

2.5 query接口 24

2.6 criteria接口 25

2.7 使用myeclipse可视化开发

hibernate实例 25

2.7.1 设置myeclipse连接oracle数据库 26

2.7.2 新建项目并增加hibernate开发支持 28

2.7.3 自动生成guestbook类与映射文件 31

2.7.4 编写hibernatesessionfactoryutil.java文件 35

2.7.5 编写hibernatetest.java 36

2.7.6 程序运行结果 37

2.7.7 使用hql编辑器调试hql语句 38

2.8 hibernate应用的开发方式 40

2.8.1 自底向上,从数据库表到持久化类 40

2.8.2 自上向下,持久化类到数据库表 40

2.8.3 从中间出发,向上与向下发展 40

2.9 设置hibernate使用连接池 40

2.9.1 设置使用tomcat中的连接池 40

2.9.2 使用c3p0连接池 41

2.9.3 使用自定义连接池 41

2.10 使用c3p0连接池 41

2.10.1 创建chapter02_c3p0项目 41

2.10.2 编辑hibernate.cfg.xml文件 42

2.10.3 chapter02_c3p0项目的运行与输出 43

2.11 网络留言本v2.0 43

2.11.1 建表 43

2.11.2 创建guestbookv2.0项目 43

2.11.3 编写stringutil.java文件 44

2.11.4 为项目添加hibernate开发支持 45

2.11.5 修改hibernate.cfg.xml的内容 45

2.11.6 生成guestbook.java与guestbook.hbm.xml文件 45

2.11.7 编写guestbook在于dao.java文件 46

2.11.8 编写guestbookdaohibernate.java文件 46

2.11.9 编写hibernatefactorysessionutil.java 47

2.11.10 编写addmessageservlet.java文件 47

2.11.11 编写getmessagesservlet.java文件 49

2.11.12 编写characterencodingfilter.java 49

2.11.13 修改web.xml文件 50

2.11.14 编写header.jsp文件 51

2.11.15 编写footer.htm文件 51

2.11.16 使用jsvalidation 52

2.11.17 使用fckeditor 54

2.11.18 编写addmessage.jsp文件 56

2.11.19 编写getmessages.jsp文件 58

2.11.20 编写addresult.jsp文件 59

2.11.21 编写error404.htm文件 59

2.11.22 编写error500.jsp文件 60

2.11.23 程序运行输出 60

第3章 标识符属性生成策略与对象识别 63

3.1 数据库中的主键 63

3.1.1 自然主键 63

3.1.2 代理主键 64

3.2 标识符属性 64

3.3 标识符属性的生成策略 64

3.3.1 increment生成策略 64

3.3.2 identity生成策略 65

3.3.3 sequence生成策略 65

3.3.4 hilo生成策略未 65

3.3.5 seqhilo生成策略 66

3.3.6 uuid生成策略 66

3.3.7 guid生成策略 66

3.3.8 native生成策略 67

3.3.9 assigned生成策略 67

3.3.10 foreign生成策略 67

3.3.11 选择标识符属性生成策略 67

3.4 映射复合主键 68

3.4.1 数据准备 68

3.4.2 使用属性映射复合主键 68

3.4.3 使用主键类映射复合主键 71

3.5 对象识别 74

3.5.1 java中的对象识别 74

3.5.2 识别数据库中数据 75

3.5.3 识别hibernate中的持久化对象 75

3.6 commons lang buider 78

3.6.1 安装commonclipse 78

3.6.2 使用commonclipse 79

第4章 持久化对象生命周期 80

4.1 持久化对象生命周期的状态 80

4.1.1 transient状态 80

4.1.2 persistent状态 81

4.1.3 detached状态 81

4.1.4 removed状态 82

4.1.5 session对象的“脏”数据检查 83

4.2 session接口的核心方法 83

4.2.1 saveorupdate()方法 83

4.2.2 merge()方法 84

4.2.3 flush()方法 85

4.2.4 close()方法 85

4.3 不可更改的持久化对象 86

第5章 osiv与泛型dao模式 87

5.1 osiv模式 87

5.1.1 使用servlet过滤器实现osiv模式 88

5.1.2 配置web.xml文件 89

5.2 泛型dao的设计与实现 89

5.2.1 编写泛型dao接口 90

5.2.2 编写泛型dao的实现类 90

5.2.3 使用genericdao接口 91

5.2.4 使用genericdaohibernate类 92

5.3 网络留言本v2.1 92

5.3.1 新建guestbookv2.1项目 92

5.3.2 建立admin表 93

5.3.3 文件列表 93

5.3.4 生成admin.java与admin.hbm.xml文件 94

5.3.5 增加hibernate.cfg.xml文件 95

5.3.6 编写admindao.java文件 95

5.3.7 编写admindaohibernate.java文件 95

5.3.8 修改getmessagesservlet.java文件 96

5.3.9 编写adminuserservlet.java文件 96

5.3.10 编写authenticationfilter.java文件 98

5.3.11 编写manageservlet.java文件 99

5.3.12 编写login.jsp文件 100

5.3.13 修改validation-framework.js文件 101

5.3.14 修改validation-config.xml文件 101

5.3.15 编写loginfail.jsp文件 102

5.3.16 编写list.jsp文件 102

5.3.17 编写edit.jsp文件 103

5.3.18 编写editresult.jsp文件 104

5.3.19 编写deleteresult.jsp文件 105

5.3.20 修改web.xml文件 105

5.3.21 程序运行结果 107

第6章 hibernate的集合映射 108

6.1 set集合映射 108

6.1.1 set接口 108

6.1.2 set映射 110

6.2 list映射 115

6.2.1 list接口 115

6.2.2 list映射 116

6.3 bag映射 118

6.4 idbag映射 121

6.5 map映射 123

6.5.1 map接口 123

6.5.2 hashmap 123

6.5.3 linkedhashmap 124

6.5.4 treemap 124

6.5.5 map映射 125

6.6 排序集合映射 128

6.6.1 利用[set]或[map]标签的sort属性排序 128

6.6.2 利用sql的order by子句排序 130

第7章 组件映射 132

7.1 组件(component)映射的单向关联 132

7.1.1 数据准备 132

7.1.2 编写profile.java文件 133

7.1.3 编写user.java文件 133

7.1.4 编写user.hbm.xml文件 134

7.1.5 编写hibernatetest.java文件 135

7.1.6 程序运行输出 136

7.2 组件映射的双向关联 137

7.3 组件集合映射 138

7.3.1 数据准备 138

7.3.2 编写image.java文件 139

7.3.3 编写product.java文件 140

7.3.4 编写product.hbm.xml文件 141

7.3.5 编写hibernatetest.java文件 142

7.3.6 组件集合映射的双向关联 144

第8章 映射多对一及一对多关联关系 145

8.1 多对一单向关联 145

8.1.1 数据准备 145

8.1.2 编写category.java与category.hbm.xml 文件 146

8.1.3 编写product.java与product.hbm.xml文件 147

8.1.4 编写hibernatetest.java文件 148

8.1.5 outer-join属性 151

8.2 一对多单向关联 151

8.2.1 数据准备 151

8.2.2 编写product.java与product.hbm.xml文件 152

8.2.3 编写category.java与category.hbm.xml文件 152

8.2.4 编写hibernatetest.java文件 154

8.3 级联 156

8.4 一对多双向关联 157

8.4.1 数据准备 158

8.4.2 编写product.java与product.hbm.xml文件 158

8.4.3 编写category.java与category.hbm.xml文件 158

8.4.4 编写hibernatetest.java文件 159

8.5 控制反转(inverse) 160

第9章 映射一对一关联关系 163

9.1 共享主键关联 163

9.1.1 数据准备 163

9.1.2 编写user.java与user.hbm.xml文件 164

9.1.3 编写profile.java与profile.hbm.xml文件 165

9.1.4 编写hibernatetest.java文件 166

9.2 唯一外键关联 168

9.2.1 准备数据 168

9.2.2 编写profile.java与profile.hbm.xml 文件 169

9.2.3 编写user.java与user.hbm.xml文件 169

9.2.4 编写hibernatetest.java 文件 170

第10章 映射多对多关联关系 171

10.1 多对多单向关联 171

10.1.1 准备数据 171

10.1.2 编写product.java与product.hbm.xml文件 173

10.1.3 编写order.java与order.hbm.xml文件 173

10.1.4 order与product的类图 175

10.1.5 编写hibernatetest.java文件 175

10.2 多对多双向关联 177

10.2.1 准备数据 178

10.2.2 编写order.java与order.hbm.xml 文件 178

10.2.3 编写product.java与product.hbm.xml文件 179

10.2.4 order与product类的类图 179

10.2.5 编写hibernatetest.java文件 180

10.3 在多对多关联中使用组件集合映射 181

10.3.1 准备数据 182

10.3.2 编写product.java与product.hbm.xml 文件 182

10.3.3 编写orderitem.java文件 182

10.3.4 编写order.java与order.hbm.xml文件 183

10.3.5 product、order与orderitem的类图 185

10.3.6 编写hibernatetest.java文件 185

10.4 分拆多对多关联为两个一对多关联 187

10.4.1 数据准备 187

10.4.2 编写product.java与product.hbm.xml文件 187

10.4.3 编写orderitem.java与orderitem.hbm.xml文件 187

10.4.4 编写order.java与order.hbm.xml文件 188

10.4.5 编写hibernatetest.java文件 189

第11章 criteria查询 190

11.1 准备数据 190

11.1.1 创建guestbook、product和category表 190

11.1.2 在guestbook、product和category表中添加演示数据 191

11.1.3 实例文件 191

11.2 criteria的基本使用 192

11.2.1 criteria接口的主要方法 192

11.2.2 criterion接口 193

11.2.3 排序查询结果 194

11.2.4 分页显示数据 194

11.2.5 查询一条记录 195

11.2.6 通过关联对象建立查询条件 196

11.2.7 restrictions类 196

11.2.8 条件“或”方式组合查询条件 197

11.2.9 使用原生sql语句设置查询条件.. 198

11.2.10 统计函数查询 198

11.2.11 统计函数组合查询条件 199

11.2.12 获取多个统计函数的值 199

11.2.13 分组查询 200

11.2.14 分组统计 200

11.2.15 为分组统计结果指定别名 201

11.2.16 投影查询 202

11.2.17 使用property类的forname()方法实现分组统计 203

11.3 使用detachedcriteria对象实现离线查询 204

11.4 根据示例对象查询 205

第12章 hql与native sql查询 206

12.1 准备数据 206

12.2 query接口 206

12.2.1 list()方法 207

12.2.2 iterate()方法 207

12.2.3 选择list()和iterate()方法 208

12.2.4 使用setmaxresults()和setfirstresult()方法实现分页 208

12.2.5 使用uniqueresult()方法读取唯一记录 209

12.3 hql基础 209

12.3.1 查询所有持久化对象 209

12.3.2 投影查询 210

12.3.3 使用别名 212

12.3.4 使用distinct关键字 213

12.3.5 限定查询的条件 213

12.3.6 数据排序 216

12.3.7 使用参数占位符 216

12.3.8 使用统计函数 217

12.3.9 使用函数 218

12.4 hql的批量更新 218

12.5 hql中的连接查询 219

12.5.1 使用交叉连接 219

12.5.2 使用内连接 220

12.5.3 使用左外连接 221

12.5.4 使用右外连接 222

12.5.5 迫切内连接 223

12.5.6 迫切左外连接 225

12.6 命名的hql 225

12.7 使用sql 226

12.7.1 sql查询 226

12.7.2 sql更新记录 228

12.7.3 sql删除记录 228

12.7.4 命名的sql 229

12.7.5 调用存储过程 229

12.8 使用sqlquery对象实现动态表映射 230

12.8.1 准备数据 230

12.8.2 编写loginfo.java文件 231

12.8.3 编写loginfo.hbm.xml文件 231

12.8.4 编写hibernatetest.java文件 232

12.9 在hibernate中调用数据库存储过程 233

12.9.1 准备数据 233

12.9.2 调用数据库存储过程 234

12.10 在hibernate中使用jdbc 234

12.10.1 准备数据 235

12.10.2 调用数据库存储过程 235

第13章 hibernate的事务管理 236

13.1 数据库事务 236

13.1.1 事务的特性 237

13.1.2 编程式与声明式事务 237

13.1.3 在jdbc中使用事务 237

13.1.4 并发访问数据可能引发的问题 239

13.1.5 事务隔离级别 241

13.2 hibernate中的事务 243

13.2.1 在hibernate中事务管理api 243

13.3 锁 244

13.4 hibernate中的锁定模式 245

13.5 悲观锁 245

13.5.1 使用query对象的setlockmode()方法设置悲观锁 245

13.5.2 使用sessoin对象的lock()方法设置悲观锁 246

13.6 乐观锁 246

13.6.1 以版本号方式实现乐观锁 247

13.6.2 时间戳实现乐观锁 250

第14章 继承映射 252

14.1 继承关系层次一个表 253

14.1.1 创建delivery表 253

14.1.2 编写delivery.java文件 254

14.1.3 编写postdelivery.java文件 254

14.1.4 编写expressdelivery.java文件 254

14.1.5 编写delivery.hbm.xml文件 254

14.1.6 编写hibernatetest.java文件 255

14.1.7 继承关系层次一个表的优缺点 257

14.2 每个具体类一个表 257

14.2.1 创建post_delivery和express_delivery表 258

14.2.2 编写delivery.java文件 258

14.2.3 编写postdelivery.java文件 259

14.2.4 编写expressdelivery.java文件 259

14.2.5 编写delivery.hbm.xml文件 259

14.2.6 编写hibernatetest.java文件 260

14.2.7 每个具体类一个表的优缺点 261

14.3 每个子类一个表 261

14.3.1 创建delivery、post_delivery和express_delivery表 262

14.3.2 编写delivery.java文件 262

14.3.3 编写postdelivery.java文件 263

14.3.4 编写expressdelivery.java 263

14.3.5 编写delivery.hbm.xml文件 263

14.3.6 编写hibernatetest.java文件 263

14.4 每个子类一个表的优缺点 265

14.5 小结 265

第15章 hibernate过滤器 266

15.1 概念 266

15.2 配置 266

15.2.1 使用[filter-def]标签定义过滤器 266

15.2.2 使用[filter]标签声明使用过滤器 267

15.3 调用hibernate过滤器 267

15.3.1 session接口中与filter对象有关的方法 267

15.3.2 调用hibernate过滤器的示例 268

15.4 小结 269

第16章 数据拦截与事件监听 270

16.1 拦截器 270

16.1.1 interceptor接口的方法 270

16.1.2 使用拦截器实现审计日志 271

16.2 hibernate的事件监听 274

16.2.1 应用hibernate事件监听器 275

16.2.2 使用监听器实现审计日志 275

16.2.3 事件监听与拦截器的比较 280

第17章 hibernate的缓存 281

17.1 持久层缓存的概念 281

17.1.1 持久层缓存的级别 281

17.2 hibernate的一级缓存 282

17.2.1 一级缓存的实现原理 283

17.2.2 管理一级缓存 283

17.3 hibernate的二级缓存 284

17.3.1 二级缓存的策略 285

17.3.2 应用ehcache作为二级缓存 286

17.3.3 缓存集合对象 288

17.3.4 管理二级缓存 289

17.4 查询缓存 290

17.4.1 查询缓存的实现原理 290

17.4.2 使用查询缓存 291

17.5 应用memcached作为二级缓存 292

17.5.1 memcached 292

17.5.2 hibernate-memcached 292

17.5.3 在hibernate应用中使用memcached 293

17.6 缓存对get()、load()、list()和iterator()方法的影响 295

17.7 小结 296

第18章 hibernate的性能优化 297

18.1 使用dynamic-insert与dynamic-update 297

18.1.1 应用[class]标签的dynamic-insert与dynamic-update属性 298

18.2 延迟加载 298

18.2.1 持久化对象的延迟加载 299

18.2.2 集合对象的延迟加载 301

18.2.3 属性的延迟加载 303

18.2.4 解决org.hibernate.lazy

initializationexception违例问题 303

18.3 集合对象的抓取策略 304

18.3.1 查询抓取 305

18.3.2 子查询抓取 307

18.3.3 连接查询抓取 308

18.3.4 批量抓取 309

18.3.5 hibernate的“1+n”问题 310

第19章 hibernate annotations组件 312

19.1 下载hibernate annotations组件 312

19.2 使用annotations实现一对多双向关联映射 313

19.2.1 准备数据 313

19.2.2 在当前项目中添加hibernate annotations类库 313

19.2.3 编写product.java和category.java文件 313

19.2.4 编写hibernate.cfg.xml文件 317

19.2.5 编写hibernatetest.java文件 317

19.3 hibernate annotations组件核心注解 318

19.3.1 注解属性或者方法 318

19.3.2 hibernate annotations组件核心注解 318

19.3.3 注解vs映射文件 319

19.4 hibernate entitymanager 320

19.4.1 java persistence api 320

19.4.2 下载hibernate entitymanager 320

19.4.3 应用hibernate entitymanager 320

第20章 hibernate search组件 323

20.1 搜索引擎 323

20.1.1 全文检索引擎 323

20.1.2 目录索引搜索引擎 324

20.1.3 元搜索引擎 324

20.2 lucene 324

20.3 hibernate search组件 325

20.3.1 hibernate search组件的特点 325

20.3.2 使用hibernate search组件 325

20.4 使用luke工具查看索引数据 330

20.5 中文分词 331

20.5.1 概念 331

20.5.2 中文分词的基本机制 331

20.5.3 hibernate search使用第三方中文分词组件 332

第21章 hibernate与struts 2 334

21.1 struts 2框架 334

21.1.1 struts 2框架的特点 335

21.1.2 下载struts 2 335

21.2 编写第1个struts 2程序 336

21.2.1 新建web项目添加struts类库 336

21.2.2 修改web.xml文件配置struts2的过滤器 337

21.2.3 编写login.jsp文件 337

21.2.4 编写loginaction.java文件 338

21.2.5 编写loginresult.jsp文件 340

21.2.6 编写struts.xml文件 340

21.2.7 项目部署后的运行效果 341

21.3 struts 2的内部结构 342

21.3.1 struts 2的处理流程 343

21.4 网络留言本v2.2 344

21.4.1 新建guestbookv2.2项目 344

21.4.2 所需文件列表 344

21.4.3 编写guestbookaction.java文件 345

21.4.4 编写adminaction.java文件 347

21.4.5 编写struts.xml文件 348

21.4.6 修改web.xml文件 349

21.4.7 修改addmessage.jsp文件 350

21.4.8 修改login.jsp文件 351

21.4.9 部署运行项目 352

第22章 hibernate与spring framework 353

22.1 spring简介 353

22.1.1 spring的子模块 353

22.1.2 下载spring 354

22.2 ioc容器 355

22.2.1 容器的概念 355

22.2.2 ioc设计模式 355

22.2.3 spring的ioc容器 356

22.2.4 使用spring ioc容器示例 356

22.3 spring aop 359

22.3.1 oop的不足 359

22.3.2 aop技术 360

22.3.3 spring aop 360

22.3.4 aop的专有名词 361

22.3.5 spring aop中的常用通知类型 361

22.3.6 使用aspectj 5的注解实现spring aop 362

22.3.7 aspectj的切入点表达式语法 364

22.4 spring对hibernate的支持 365

22.4.1 简化获取sessionfactory对象 365

22.4.2 hibernatetemplate类 368

22.4.3 hibernatedaosupport类 371

22.4.4 spring对事务的支持 372

22.4.5 声明式事务的参数定义 373

22.4.6 使用spring注解管理事务的示例 375

22.5 guestbook v2.3版 377

22.5.1 新建guestbookv2.3项目 377

22.5.2 文件列表 378

22.5.3 修改web.xml文件 378

22.5.4 修改dao实现类 379

22.5.5 修改servlet文件 380

22.5.6 编写applicationcontext.xml 380

22.5.7 项目运行输出 381

22.6 小结 382

第23章 kh网络博客系统 383

23.1 系统需求分析 383

23.1.1 确定用户 383

23.1.2 系统功能 384

23.2 系统设计 384

23.2.1 系统结构设计 384

23.2.2 数据库设计 385

23.2.3 设计域模型 390

23.2.4 持久层设计 391

23.2.5 业务逻辑层设计 392

23.2.6 表现层的设计 392

23.2.7 action类设计 393

23.2.8 权限控制设计 394

23.2.9 分页设计 394

23.2.10 数据校验设计 397

23.2.11 订阅博客功能设计 399

23.2.12 设置开发环境 399

23.2.13 java包名与组织结构设计 400

23.3 编码实现 400

23.3.1 创建项目 400

23.3.2 域模型代码 400

23.3.3 持久层的相关代码 403

23.3.4 业务逻辑层的相关代码 412

23.3.5 表现层的相关代码 421

23.4 部署运行kh网络博客系统 440

23.5 小结... 441


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Hibernate开发与实战
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon