[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

     经部  史类  子部  集部  古籍管理  古籍工具书  四库全书  古籍善本影音本  中国藏书
  •  文化

     文化评述  文化随笔  文化理论  传统文化  世界各国文化  文化史  地域文化  神秘文化  文化研究  民俗文化  文化产业  民族文化  书的起源/书店  非物质文化遗产  文化事业  文化交流  比较文化学
  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

     执业资格考试用书  室内设计/装潢装修  标准/规范  建筑科学  建筑外观设计  建筑施工与监理  城乡规划/市政工程  园林景观/环境艺术  工程经济与管理  建筑史与建筑文化  建筑教材/教辅  英文原版书-建筑
  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

     园艺  植物保护  畜牧/狩猎/蚕/蜂  林业  动物医学  农作物  农学(农艺学)  水产/渔业  农业工程  农业基础科学  农林音像
  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

  •  保健/养生

  •  体育/运动

  •  手工/DIY

  •  休闲/爱好

  •  英文原版书

  •  港台图书

  •  研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学

  •  音乐
     音乐理论

     声乐  通俗音乐  音乐欣赏  钢琴  二胡  小提琴
  • Web框架技術(Struts2+Hibernate5+Spring5)教程(第2版)
    該商品所屬分類:研究生 -> 工學
    【市場價】
    440-638
    【優惠價】
    275-399
    【作者】 張志鋒、馬軍霞 
    【所屬類別】 圖書  教材  研究生/本科/專科教材  工學圖書  計算機/網絡  程序設計  其他 
    【出版社】清華大學出版社 
    【ISBN】9787302524298
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:16開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    國際標準書號ISBN:9787302524298
    作者:張志鋒、馬軍霞

    出版社:清華大學出版社
    出版時間:2019年04月 

        
        
    "

    產品特色
    編輯推薦
    項目驅動,任務引導。以項目為驅動的教學模式,將知識和技術講解融入項目實踐。
    循序漸進,內容全面。從基礎知識到實戰技術,從簡單到復雜,由淺入深,繫統講解。
    強調實踐,面向工程。結合項目開發全過程講解,訓練復雜工程實踐能力,激發創新意識。
    資源豐富,案例典型。提供220個實例、30個小項目和3個大項目源碼、教學課件、大綱等配套教學資源。 
    內容簡介
    本書旨在培養學生的Java Web框架技術實踐創新和工程能力,為廣大讀者提供一本Java Web框架知識綜合學習和積累項目開發經驗的書。
    全書理論聯繫實踐,引進以項目為驅動的教學模式,詳細繫統地講解Struts2、Hibernate5和Spring5框架技術,將項目開發貫穿整個知識體繫。全書共分11章,內容包括Struts2框架技術入門、Struts2核心組件詳解、Struts2的高級組件、基於Struts2的個人信息管理繫統項目實訓、Hibernate5框架技術入門、Hibernate5核心組件詳解、Hibernate5的高級組件、基於Struts2 Hibernate5的教務管理繫統項目實訓、Spring5框架技術入門、Spring5的AOP框架、基於Struts2 Hibernate5 Spring5的校園論壇BBS項目實訓。通過30多個小項目和3個大項目的開發實踐,使讀者能夠掌握基本理論知識,並鍛煉讀者的綜合應用能力。
    本書可作為普通高等院校的Java Web框架技術教材,也可作為Java工程師培訓教材或作為Java工程師的參考書。
    目錄
    目錄
    第1章Struts2框架技術入門1
    1.1Struts2的基礎知識1
    1.1.1Struts2的由來與發展1
    1.1.2Struts2軟件包的下載和配置2
    1.1.3MVC設計模式15
    1.1.4Struts2的工作原理16
    1.2Struts2的核心組件17
    1.2.1Struts2的控制器組件17
    1.2.2Struts2的模型組件18
    1.2.3Struts2的視圖組件20
    1.3基於Struts2的登錄繫統21
    1.3.1使用NetBeans8開發項目21
    1.3.2使用MyEclipse 2017開發項目26目錄
    第1章Struts2框架技術入門1
    1.1Struts2的基礎知識1
    1.1.1Struts2的由來與發展1
    1.1.2Struts2軟件包的下載和配置2
    1.1.3MVC設計模式15
    1.1.4Struts2的工作原理16
    1.2Struts2的核心組件17
    1.2.1Struts2的控制器組件17
    1.2.2Struts2的模型組件18
    1.2.3Struts2的視圖組件20
    1.3基於Struts2的登錄繫統21
    1.3.1使用NetBeans8開發項目21
    1.3.2使用MyEclipse 2017開發項目26
    1.3.3使用Eclipse開發項目33
    1.4本章小結34
    1.5習題34
    1.5.1選擇題34
    1.5.2填空題35
    1.5.3簡答題35
    1.5.4實訓題35第2章Struts2核心組件詳解36
    2.1Struts2的配置文件struts.xml36
    2.1.1struts.xml配置文件的結構36
    2.1.2Bean配置37
    2.1.3常量配置38
    2.1.4包含配置39
    2.1.5包配置40
    2.1.6命名空間配置41
    2.1.7Action配置42
    2.1.8結果配置43
    2.1.9攔截器配置43
    2.2Struts2的核心控制器StrutsPrepareAndExecuteFilter43
    2.3Struts2的業務控制器Action44
    2.3.1Action接口和ActionSupport類44
    2.3.2Action實現類48
    2.3.3Action訪問ActionContext49
    2.3.4Action直接訪問Servlet54
    2.3.5Action中的動態方法調用57
    2.4Struts2的OGNL表達式62
    2.4.1Struts2的OGNL表達式62
    2.4.2Struts2的OGNL集合66
    2.5Struts2的標簽庫67
    2.5.1Struts2的標簽庫概述67
    2.5.2Struts2的表單標簽67
    2.5.3Struts2的非表單標簽75
    2.5.4Struts2的數據標簽78
    2.5.5Struts2的控制標簽85
    2.6本章小結94
    2.7習題94
    2.7.1選擇題94
    2.7.2填空題95
    2.7.3簡答題95
    2.7.4實訓題95第3章Struts2的高級組件96
    3.1Struts2的國際化96
    3.1.1Struts2實現國際化的流程96
    3.1.2Struts2國際化應用實例99
    3.2Struts2的攔截器104
    3.2.1Struts2攔截器的基礎知識104
    3.2.2Struts2攔截器實現類105
    3.2.3Struts2攔截器應用實例106
    3.3Struts2的輸入校驗110
    3.3.1Struts2輸入驗證的基礎知識110
    3.3.2Struts2的手工驗證117
    3.3.3Struts2內置校驗器的使用121
    3.3.4Struts2內置校驗器應用實例127
    3.4Struts2的文件上傳和下載134
    3.4.1文件上傳134
    3.4.2文件下載140
    3.5本章小結144
    3.6習題145
    3.6.1選擇題145
    3.6.2填空題145
    3.6.3簡答題145
    3.6.4實訓題146第4章基於Struts2的個人信息管理繫統項目實訓147
    4.1項目需求說明147
    4.2項目繫統分析147
    4.3項目的數據庫設計148
    4.4項目實現150
    4.4.1項目文件結構150
    4.4.2用戶登錄和注冊功能的實現151
    4.4.3繫統主頁面功能的實現184
    4.4.4個人信息管理功能的實現188
    4.4.5通訊錄管理功能的實現202
    4.4.6日程安排管理功能的實現218
    4.4.7個人文件管理功能的實現236
    4.5本章小結249
    4.6習題249
    實訓題249第5章Hibernate5框架技術入門250
    5.1Hibernate5的基礎知識250
    5.1.1Hibernate5的發展與特點250
    5.1.2Hibernate5軟件包的下載和配置251
    5.1.3Hibernate5的工作原理254
    5.2Hibernate5的核心組件254
    5.3基於Struts2和Hibernate5的登錄和注冊繫統255
    5.4本章小結270
    5.5習題270
    5.5.1選擇題270
    5.5.2填空題270
    5.5.3簡答題270
    5.5.4實訓題271第6章Hibernate5核心組件詳解272
    6.1Hibernate5的配置文件272
    6.1.1hibernate.cfg.xml272
    6.1.2hibernate.properties275
    6.2Hibernate5的持久化對像278
    6.2.1Hibernate5的持久化對像基礎知識278
    6.2.2Hibernate5的持久化對像狀態279
    6.3Hibernate5的映射文件281
    6.4Hibernate5的Configuration類284
    6.5Hibernate5的SessionFactory接口284
    6.6Hibernate5的Session接口285
    6.6.1Session接口的基礎知識285
    6.6.2通過方法獲取持久化對像286
    6.6.3操作持久化對像的常用方法287
    6.7Hibernate5的Transaction接口290
    6.8Hibernate5的Query接口291
    6.8.1Query接口的基本知識291
    6.8.2Query接口的常用方法292
    6.9基於Struts2 Hibernate5的學生信息管理繫統294
    6.9.1項目介紹、主頁面以及查看學生信息功能的實現295
    6.9.2添加學生信息功能的實現304
    6.9.3修改學生信息功能的實現308
    6.9.4刪除學生信息功能的實現316
    6.10本章小結318
    6.11習題319
    6.11.1選擇題319
    6.11.2填空題319
    6.11.3簡答題319
    6.11.4實訓題320第7章Hibernate5的高級組件321
    7.1利用關聯關繫操縱對像321
    7.1.1一對一關聯關繫321
    7.1.2一對一關聯關繫的應用實例324
    7.1.3一對多關聯關繫336
    7.1.4一對多關聯關繫的應用實例338
    7.1.5多對多關聯關繫345
    7.1.6多對多關聯關繫的應用實例346
    7.2Hibernate5數據查詢355
    7.2.1Hibernate Query Language 355
    7.2.2Criteria Query方式358
    7.2.3Native SQL查詢358
    7.3Hibernate5的事務管理358
    7.3.1事務的特性358
    7.3.2事務隔離359
    7.3.3在Hibernate5配置文件中設置隔離級別360
    7.3.4在Hibernate5中使用JDBC事務360
    7.3.5在Hibernate5中使用JTA事務361
    7.4Hibernate5的Cache管理361
    7.4.1一級Cache362
    7.4.2二級Cache362
    7.5本章小結363
    7.6習題363
    7.6.1選擇題363
    7.6.2填空題364
    7.6.3簡答題364
    7.6.4實訓題364第8章基於Struts2 Hibernate5的教務管理繫統項目實訓365
    8.1項目需求說明365
    8.2項目繫統分析365
    8.3項目的數據庫設計367
    8.4項目實現369
    8.4.1項目文件結構369
    8.4.2用戶登錄功能的實現370
    8.4.3學生管理功能的實現396
    8.4.4管理員管理功能的實現409
    8.4.5教師管理功能的實現415
    8.5本章小結415
    8.6習題416
    實訓題416第9章Spring5框架技術入門417
    9.1Spring5的基礎知識417
    9.1.1Spring5的由來與發展417
    9.1.2Spring5的下載與配置418
    9.1.3Spring5框架的體繫結構421
    9.2Spring5 IoC的原理和主要組件423
    9.2.1IoC的基礎知識以及原理423
    9.2.2IoC的主要組件429
    9.2.3IoC的應用實例432
    9.2.4注入的兩種方式440
    9.3基於Struts2 Hibernate5 Spring5的登錄繫統443
    9.3.1項目介紹443
    9.3.2在web.xml中配置Struts2和Spring5445
    9.3.3編寫視圖組件446
    9.3.4Action和JavaBean446
    9.3.5Struts2、Spring5和Hibernate的配置文件450
    9.3.6Struts2、Spring5和Hibernate整合中常見問題452
    9.3.7項目部署和運行452
    9.4本章小結453
    9.5習題454
    9.5.1選擇題454
    9.5.2填空題454
    9.5.3簡答題454
    9.5.4實訓題454第10章Spring5的AOP框架455
    10.1AOP框架基礎知識455
    10.1.1AOP框架簡介455
    10.1.2Spring5的AOP框架主要術語457
    10.2代理458
    10.2.1靜態代理458
    10.2.2動態代理461
    10.3創建通知463
    10.3.1前置通知及應用實例463
    10.3.2後置通知及應用實例466
    10.3.3環繞通知及應用實例468
    10.3.4異常通知及應用實例470
    10.3.5引入通知473
    10.4定義切入點473
    10.4.1靜態切入點和動態切入點473
    10.4.2切入點的應用實例474
    10.5創建引入478
    10.6本章小結479
    10.7習題479
    10.7.1選擇題479
    10.7.2填空題479
    10.7.3簡答題479
    10.7.4實訓題480第11章基於Struts2 Hibernate5 Spring5的校園論壇BBS項目實訓481
    11.1項目需求分析481
    11.2項目分析與設計482
    11.3項目的數據庫設計483
    11.4項目實現485
    11.4.1項目的文件結構和主頁面485
    11.4.2BBS登錄功能的實現527
    11.4.3BBS板塊管理功能的實現536
    11.4.4BBS帖子管理功能的實現544
    11.4.5個人信息管理功能的實現574
    11.5本章小結584
    11.6習題584
    實訓題584參考文獻585
    前言
    前言
    目前,軟件企業在招聘Java工程師時,幾乎無一例外地要求應聘人員具備Java Web框架技術的應用能力,所以Java Web框架技術應用是Java工程師的技能。
    為切實貫徹、實踐“工程教育認證”的思想,培養學生的專業應用能力、繫統設計能力和工程實踐能力,本教材引進以項目為驅動的教學模式,通過30多個小項目和3個大項目的實踐訓練,使讀者在學習Java Web框架技術知識體繫的同時,結合工程實踐加深理解和鞏固,同時培養學生的工程意識、協作精神以及綜合應用所學知識解決實際問題的能力。
    本書主要內容安排如下。
    第1章Struts2框架技術入門。本章主要介紹Struts2的基礎知識、Struts2的核心組件和基於Struts2的登錄繫統。
    第2章Struts2核心組件詳解。本章主要介紹Struts2的配置文件struts.xml、Struts2的核心控制器StrutsPrepareAndExecuteFilter、Struts2的業務控制器Action、Struts2的OGNL表達式和Struts2的標簽庫。前言
    目前,軟件企業在招聘Java工程師時,幾乎無一例外地要求應聘人員具備Java Web框架技術的應用能力,所以Java Web框架技術應用是Java工程師的技能。
    為切實貫徹、實踐“工程教育認證”的思想,培養學生的專業應用能力、繫統設計能力和工程實踐能力,本教材引進以項目為驅動的教學模式,通過30多個小項目和3個大項目的實踐訓練,使讀者在學習Java Web框架技術知識體繫的同時,結合工程實踐加深理解和鞏固,同時培養學生的工程意識、協作精神以及綜合應用所學知識解決實際問題的能力。
    本書主要內容安排如下。
    第1章Struts2框架技術入門。本章主要介紹Struts2的基礎知識、Struts2的核心組件和基於Struts2的登錄繫統。
    第2章Struts2核心組件詳解。本章主要介紹Struts2的配置文件struts.xml、Struts2的核心控制器StrutsPrepareAndExecuteFilter、Struts2的業務控制器Action、Struts2的OGNL表達式和Struts2的標簽庫。
    第3章Struts2的高級組件。本章主要介紹Struts2的國際化、Struts2的攔截器、Struts2的輸入校驗、Struts2的文件上傳和下載。
    第4章基於Struts2的個人信息管理繫統項目實訓。本章主要介紹項目需求說明、項目繫統分析、項目的數據庫設計和項目實現。通過該項目的練習實現整合前3章所學知識,同時培養讀者的項目實踐能力,積累項目開發經驗。
    第5章Hibernate5框架技術入門。本章主要介紹Hibernate5的基礎知識、Hibernate5的核心組件、基於Struts2和Hibernate5的登錄和注冊繫統。
    第6章Hibernate5核心組件詳解。本章主要介紹Hibernate5的配置文件、Hibernate5的持久化對像、Hibernate5的映射文件、Hibernate5的Configuration類、Hibernate5的SessionFactory接口、Hibernate5的Session接口、Hibernate5的Transaction接口、Hibernate5的Query 接口、基於Struts2 Hibernate5的學生信息管理繫統。
    第7章Hibernate5的高級組件。本章主要介紹利用關聯關繫操縱對像、Hibernate5 數據查詢、Hibernate5 的事務管理、Hibernate5的Cache管理。
    第8章基於Struts2 Hibernate5的教務管理繫統項目實訓。本章主要介紹項目需求說明、項目繫統分析、項目的數據庫設計和項目實現。通過該項目的練習整合前面章節所學知識,進一步積累項目開發經驗。
    第9章Spring5框架入門。本章主要介紹Spring5的基礎知識、Spring5 IoC的原理和主要組件、基於Struts2 Hibernate5 Spring5的登錄繫統。
    第10章Spring5的AOP框架。本章主要介紹AOP框架基礎知識、代理、創建通知、定義切入點和創建引入。
    第11章基於Struts2 Hibernate5 Spring5的校園論壇BBS項目實訓。本章主要介紹項目需求分析、項目分析與設計、項目的數據庫設計和項目實現。通過該項目綜合運用SSH技術,積累項目開發經驗。
    本書由張志鋒、馬軍霞、宋勝利、杜中州、趙曉君、範乃梅、徐潔、劉育熙、李璞、谷培培、崔霄、付金華、趙明輝、劉放美、李保環和軟件工程專業2015級賈啟同學共同編寫。
    在本書的編寫和出版過程中得到鄭州輕工業大學、清華大學出版社的大力支持和幫助,在此表示感謝。
    由於編寫時間倉促,水平所限,書中難免有紕漏之處,敬請讀者不吝賜教。
    除了配套制作的教學課件、教學日歷、教學大綱、實驗大綱、期末試卷外,本書還提供書中NetBeans和MyEclipse版本的示例源代碼、課後習題參考答案、電子版課後習題以及其他未收入教材的實訓項目(可在清華大學出版社網站www.tup.com.cn下載或者在作者提供的教學資源網站http://iweb.zzuli.edu.cn下載),並為教師提供服務郵箱(2394115659@qq.com),以提供更多、更便捷的教學資源服務。

    編者
    2019年1月
    在線試讀
    第5章Hibernate5框架技術入門
    在Java Web項目開發中,有許多功能模塊需要連接數據庫繫統,實現對數據庫表的操作。在Java程序設計和JSP程序設計技術中,使用JDBC技術連接數據庫。為了實現與數據庫的高效操作,提高Java Web的項目性能,可以使用Hibernate5框架技術。本章主要介紹Hibernate5的基本內容。
    本章主要內容如下所示。
    (1) Hibernate5的發展與特點。
    (2) Hibernate5的下載與配置。
    (3) Hibernate5的工作原理。
    (4) Hibernate5的核心組件。
    (5) 基於Struts2 Hibernate5的登錄和注冊繫統。
    5.1Hibernate5的基礎知識
    Hibernate是封裝了JDBC的一種開放源代碼的對像關繫映射(ObjectRelation Mapping,ORM)框架,使程序員可以使用面向對像的思想來操作數據庫。Hibernate是一種對像關繫映射的解決方案,即將Java對像與對像之間的關繫映射到數據庫表與表之間的關繫。
    5.1.1Hibernate5的發展與特點
    目前,Hibernate是Java工程師招聘中要求的一門技能,也是Java Web三大經典框架之一。Christian Bauer是Hibernate之父,現是Redhat公司負責開發和維護Hibernate的項目經理。
    2001年,Hibernate1發布,即Hibernate的個版本;2003年,Hibernate2發布,並在當年獲得Jolt 2003大獎(Jolt大獎素有“軟件業界的奧斯卡”的美譽,共設通用類圖書、技術類圖書、語言和開發環境、框架庫和組件、開發者網站等十餘個分類大獎),2003年,Hibernate被JBoss公司收購,成為該公司的子項目之一;2005年,JBoss發布Hibernate3;2006年,JBoss公司被Redhat公司收購; 2012年11月發布Hibernate 4.1.8,2015年3月發布Hibernate 5.0。第5章Hibernate5框架技術入門
    在Java Web項目開發中,有許多功能模塊需要連接數據庫繫統,實現對數據庫表的操作。在Java程序設計和JSP程序設計技術中,使用JDBC技術連接數據庫。為了實現與數據庫的高效操作,提高Java Web的項目性能,可以使用Hibernate5框架技術。本章主要介紹Hibernate5的基本內容。
    本章主要內容如下所示。
    (1) Hibernate5的發展與特點。
    (2) Hibernate5的下載與配置。
    (3) Hibernate5的工作原理。
    (4) Hibernate5的核心組件。
    (5) 基於Struts2 Hibernate5的登錄和注冊繫統。
    5.1Hibernate5的基礎知識
    Hibernate是封裝了JDBC的一種開放源代碼的對像關繫映射(ObjectRelation Mapping,ORM)框架,使程序員可以使用面向對像的思想來操作數據庫。Hibernate是一種對像關繫映射的解決方案,即將Java對像與對像之間的關繫映射到數據庫表與表之間的關繫。
    5.1.1Hibernate5的發展與特點
    目前,Hibernate是Java工程師招聘中要求的一門技能,也是Java Web三大經典框架之一。Christian Bauer是Hibernate之父,現是Redhat公司負責開發和維護Hibernate的項目經理。
    2001年,Hibernate1發布,即Hibernate的個版本;2003年,Hibernate2發布,並在當年獲得Jolt 2003大獎(Jolt大獎素有“軟件業界的奧斯卡”的美譽,共設通用類圖書、技術類圖書、語言和開發環境、框架庫和組件、開發者網站等十餘個分類大獎),2003年,Hibernate被JBoss公司收購,成為該公司的子項目之一;2005年,JBoss發布Hibernate3;2006年,JBoss公司被Redhat公司收購; 2012年11月發布Hibernate 4.1.8,2015年3月發布Hibernate 5.0。
    Hibernate是封裝了JDBC與ORM技術的數據持久性解決方案。在Java世界中,Hibernate是眾多ORM軟件中獲得關注多、使用廣泛的框架。它成功地實現了透明持久化,以面向對像的HQL語句封裝SQL語句,為開發人員提供了一個簡單靈活且面向對像的數據訪問接口。Hibernate是一個開源軟件,開發人員可以很方便地獲得軟件源代碼。當遇到問題時,程序員可以深入到源代碼中查看究竟,甚至修改Hibernate內部錯誤並將修改方案提供給JBoss組織,從而幫助Hibernate框架技術改進。
    Hibernate自發布以來受到業界的歡迎,目前許多Java程序員學習和使用它來開發商業應用軟件。另外,網絡上有大量介紹和討論Hibernate應用的文章,JBoss網站也提供了一個完善的社區,所以一旦在使用中遇到問題,開發者可以輕松地在網絡上搜索到相應的解決方法,這又進一步吸引了更多的程序員來學習Hibernate,吸引更多的公司采用Hibernate開發軟件。
    Hibernate為使用者考慮得十分周全,對於一個普通的程序員來說,隻需學習不到10個類的用法就可以開發基於Hibernate框架的應用繫統,實際使用起來十分方便。
    Hibernate提供了透明持久化功能,支持第三方框架,即能與其他框架進行整合,如Struts、Spring等,不但提供面向對像的HQL,而且支持傳統的SQL語句。
    在基於MVC設計模式的Java Web應用中,Hibernate可以作為應用的數據訪問層或持久層。它具有以下特點。
    (1) Hibernate是一個開放源代碼的對像關繫映射框架,它對JDBC進行了非常輕量級的對像封裝,使得Java工程師可以隨心所欲地使用面向對像編程思維來操作數據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet、JSP的Java Web應用中使用,革命意義的是,Hibernate可以在Java EE框架中取代CMP,完成數據持久化的重任。
    (2) Hibernate的目標是成為Java中處理數據持久性問題的一種完整解決方案。它協調應用程序與關繫數據庫的交互,把開發者解放出來專注於項目的業務邏輯問題。
    (3) Hibernate是一種非強迫性的解決方案。開發者在寫業務邏輯和持久化類時,不會被要求遵循許多Hibernate特定的規則和設計模式。這樣,Hibernate就可以與大多數新的和現有的應用程序進行集成,而不需要對應用程序的其餘部分做破壞性的改動。
    5.1.2Hibernate5軟件包的下載和配置
    本書的實例和項目使用的是Hibernate 5.2.12版本,2017年10月發布,如需使用Hibernate其他版本進行Web項目開發,可以在其官方網站下載。
    1. 軟件包下載
    由於Hibernate先被JBoss公司收購,後來JBoss被Redhat公司收購,所以Hibernate5可以在以下3個網站下載: www.redhat.com、www.jboss.org和www.hibernate.org。根據需要在上述3個網站下載自己要使用的Hibernate版本。官方頁面之一如圖51所示。
    單擊圖51所示頁面中的Hibernate ORM,出現圖52。
    單擊圖52所示頁面中的選擇點5.2後,出現如圖53所示的版本選擇頁面,在該頁面的下方選擇5.2.12.Final區域中的Download進行下載。
    單擊圖53所示頁面中Download後,出現如圖54所示的下載頁面,選擇下載路徑後進行下載。
    2. Hibernate5軟件包中主要文件
    解壓縮hibernaterelease5.2.12.Final.zip文件後得到一個名為hibernaterelease5.2.12.Final的文件夾,該文件夾結構如圖55所示。圖51Hibernate官方頁面
    圖52選擇下載頁面
    圖53版本選擇頁面圖54選擇下載文件下載
    圖55Hibernate5文件夾結構
    (1) documentation文件夾: 該文件夾中存放了Hibernate5的相關文檔,包括Hibernate5的參考文檔和API文檔等。
    (2) lib文件夾: 該文件夾存放Hibernate5框架的核心類庫以及Hibernate5的第三方類庫。該文件夾下的required子目錄存放運行Hibernate5項目時必需的核心類庫。
    (3) project文件夾: 該文件夾存放Hibernate5項目的源代碼。
    3. Hibernate5的配置
    Hibernate5的lib文件夾有6個子目錄,需要在項目的類庫中添加required和jpametamodelgenerate子目錄下面的所有JAR文件,其他目錄中的JAR文件可根據項目的實際需求添加。例如,使用連接池需要添加lib\\\\optional\\\\c3p0下面的JAR文件和使用緩存功能需要使用lib\\\\optional\\\\chcache下面的JAR文件。
    由於NetBeans 8.2和MyEclipse 2017中都集成了Hibernate,所以可以使用工具中自帶的Hibernate。集成的Hibernate版本一般不是Hibernate的版本。由於Hibernate各版本之間存在一些細節差異,有可能在配置文件和映射文件中存在差異導致項目無法運行。使用本書進行項目開發時建議使用Hibernate 5.2.12。在NetBeans 8.2、MyEclipse 2017和Eclipse中配置Hibernate與第1章中介紹的配置Struts 2.5.10的方法相似,這裡不再介紹。
    5.1.3Hibernate5的工作原理
    Hibernate5的工作原理如圖56所示。
    圖56Hibernate5的工作原理
    Hibernate5的工作過程如下。
    首先,Configuration讀取Hibernate5的配置文件hibernate.cfg.xml和映射文件.hbm.xml中的信息,即加載配置文件和映射文件,並通過Hibernate5配置文件生成一個多線程的SessionFactory對像;然後,多線程SessionFactory對像生成一個線程Session對像;Session對像生成Query對像或者Transaction對像;可通過Session對像的get()、load()、save()、update()、delete()和saveOrUpdate()等方法對PO進行加載、保存、更新、刪除等;也可利用Query對像執行查詢操作;如果沒有異常,Transaction對像將提交這些數據到數據庫中。
    5.2Hibernate5的核心組件
    在基於Hibernate5框架的項目開發時,非常關鍵的一點就是使用Hibernate5的核心類和接口,即核心組件。Hibernate5的核心組件位於業務層和持久化層之間。Hibernate5除核心組件外還包括Hibernate5配置文件(hibernate.cfg.xml或hibernate.properties)、映射文件(xxx.hbm.xml)和持久化類(Persistent Objects,PO)。
    1. Configuration
    Configuration負責配置並啟動Hibernate5,創建SessionFactory對像。在Hibernate5的啟動過程中,Configuration類的實例首先定位映射文件位置、讀取配置,然後創建SessionFactory對像。
    2. SessionFactory
    SessionFactroy負責初始化Hibernate5。它充當數據存儲源的代理,並負責創建Session對像,這裡用到了工廠模式。需要注意的是SessionFactory並不是輕量級的,因為一般情況下,一個項目通常隻需要一個SessionFactory就可以了,當需要多次操作數據庫時,可以為每個數據庫指定一個SessionFactory線程對像。SessionFactroy是產生Session實例的工廠。
    3. Session
    Session負責執行持久化對像的操作,它用get()、load()、save()、update()和delete()等方法來對PO進行加載、保存、更新及刪除等操作。但需要注意的是Session對像是非線程安全的。同時,Hibernate5的Session不同於JSP應用中的HttpSession。這裡使用的Session術語,其實指的是Hibernate5中的Session。
    4. Transaction
    Transaction負責事務相關的操作,用來管理Hibernate5事務,它的主要方法有commit()和rollback(),可以使用Session的beginTransaction()方法生成。它是可選的,開發人員也可以設計編寫自己的底層事務處理代碼。
    5. Query
    Query負責執行各種數據庫查詢。它可以使用HQL語言對PO進行查詢操作。Query對像可以使用Session的createQuery()方法生成。
    6. Hibernate5的配置文件
    Hibernate5的配置文件主要用來配置數據庫連接參數,例如,數據庫的驅動程序、URL、用戶名和密碼、數據庫方言等。它有兩種格式: hibernate.cfg.xml和hibernate.properties。兩者的配置內容基本相同,但前者比後者使用方便一些,如hibernate.cfg.xml 可以在其7. 映射文件
    映射文件(xxx.hbm.xml)用來把PO與數據庫中的表、PO之間的關繫與表之間的關繫以及PO的屬性與表字段一一映射起來,它是Hibernate5的核心文件。
    8. 持久化對像
    持久化對像(Persistent Object,PO)可以是普通的JavaBean,特殊的是它們與Session相關聯。PO在Hibernate5中存在三種狀態: 臨時狀態(Transient)、持久化狀態(Persistent)和脫管狀態(Detached)。當一個JavaBean對像在內存中孤立存在不與數據庫中的數據有任何關聯關繫時,那麼這個JavaBean對像就稱為臨時對像(Transient Object);當它與一個Session相關聯時,就變成持久化對像;在這個Session被關閉的同時,這個對像也會脫離持久化狀態,變成脫管對像(Detached Object),這時可以被應用程序的任何層自由使用,例如,可用作與表示層(V)打交道的數據傳輸對像。
    5.3基於Struts2和Hibernate5的登錄和注冊繫統
    下面使用Struts 2.5.10和Hibernate 5.2.12開發一個實現登錄和注冊功能的項目,該項目的文件結構如圖57所示。將項目中使用到的Struts 2.5.10、Hibernate 5.2.12以及MySQL 5.5驅動的JAR文件添加到項目ch05的“庫”中,如圖58所示。
    圖57項目的文件結構
    圖58項目所需的JAR文件



    1. 項目介紹
    本項目實現用戶登錄和用戶注冊功能。有一個登錄頁面(login.jsp),代碼如例51所示,登錄頁面對應的業務控制器為LoginAction,該Action中覆蓋了validate()方法,使用手工驗證對登錄頁面進行驗證,該業務控制器類代碼如例54所示,如果輸入的用戶名和密碼都正確,進入登錄成功頁面(success.jsp),代碼如例52所示;如果用戶沒有注冊需先注冊,注冊頁面(register.jsp)代碼如例53所示,該注冊頁面對應的業務控制器為RegisterAction,代碼如例55所示,注冊成功後返回登錄頁面。還需要配置web.xml,代碼如例13所示;在struts.xml中配置Action,代碼如例56所示。
    該項目使用MySQL數據庫。數據庫名為test,有一張名為info的表,表的字段名稱、類型以及長度如圖59所示。
    圖59數據庫info表的結構
    在基於Struts2 Hibernate5的項目開發中,連接數據庫時需要Hibernate5的配置文件hibernate.cfg.xml或者hibernate.properties,本項目使用的是hibernate.cfg.xml,代碼如例57所示,配置文件主要用於加載數據庫的驅動以及與數據庫建立連接等,該配置文件一般與struts.xml文件放在同一位置,參考圖58。該配置文件在項目運行時需要加載,本項目編寫一個加載該配置文件的類HibernateSessionFactory,該類封裝了配置文件的加載方法,即加載配置文件的JavaBean,代碼如例58所示。
    另外,在使用Hibernate5時,項目所用數據庫中的每一張表都對應一個持久化對像PO。通過PO把頁面中的數據保存起來並把數據存到數據庫中。為了簡化開發,本項目的登錄頁面和注冊頁面都使用同一張表,登錄頁面和注冊頁面中的數據都保存在UserInfoPO中,代碼如例59所示。每個PO一般都會對應一個映射文件UserInfoPO.hbm.xml,代碼如例510所示,映射文件配置PO與數據庫中表之間的映射關繫;映射文件一般都放在和其對應的PO所在包中。為了封裝登錄和注冊功能對數據的操作,即登錄和注冊頁面要實現的業務邏輯,本項目編寫一個名為LoginRegisterInfo的JavaBean,該類提供了登錄和注冊業務處理,可以實現登錄和注冊的持久化業務操作,代碼如例511所示。
    以上文件所在的路徑可參考項目文件結構圖57。
    2. 在web.xml中配置核心控制器StrutsPrepareAndExecuteFilter
    參考1.3.1節中的例13。
    3. 編寫視圖組件(JSP頁面)
    登錄頁面(login.jsp)運行效果如圖510所示,代碼如例51所示。
    圖510登錄頁面
    【例51】登錄頁面(login.jsp)。<%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@taglibprefix="s" uri="/struts-tags" %>



    <s:text name="基於SH的應用"></s:text>




















    size="16"/>

    size="16"/>



    注冊




    登錄成功頁面(success.jsp),代碼如例52所示。
    【例52】登錄成功頁面(success.jsp)。<%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@taglibprefix="s" uri="/struts-tags" %>



    <s:text name="基於SH的應用"></s:text>









    歡迎${userName},登錄成功!




    注冊頁面(register.jsp)如圖511所示,代碼如例53所示。
    圖511注冊頁面
    【例53】注冊頁面(register.jsp)。<%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@taglibprefix="s" uri="/struts-tags" %>



    <s:text name="基於SH的應用"></s:text>























     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部