Hibernate入门课程-编程练习.ppt_第1页
Hibernate入门课程-编程练习.ppt_第2页
Hibernate入门课程-编程练习.ppt_第3页
Hibernate入门课程-编程练习.ppt_第4页
Hibernate入门课程-编程练习.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Hibernate实践 2 JavaEE分布式开发 实践内容 使用PowerDesigner进行数据库设计Hibernate的数据库连接池配置 C3P0 Hibernate的二级缓存配置 EhCache Hibernate使用大二进制字段 BLOB CLOB 补充 软件配置管理 SCM 与版本管理软件Subversion PowerDesigner的数据库设计 创建概念数据模型 CDM 创建物理数据模型 PDM 由PDM生成SQL语句通过JDBC连接进行MySql数据库反向工程要设置JAVA HOME PATH可以只选择指定的表 数据库连接池的Hibernate配置 概述 Hibernate自带的连接池算法相当不成熟 它只是为了让你快些上手 并不适合用于产品系统或性能测试中 出于最佳性能和稳定性考虑你应该使用第三方的连接池 只需要用特定连接池的设置替换hibernate connection pool size即可 这将关闭Hibernate自带的连接池 C3P0是一个随Hibernate一同分发的开源的JDBC连接池 它位于lib目录下 如果你设置了hibernate c3p0 相关的属性 Hibernate将使用C3P0ConnectionProvider来缓存JDBC连接 使用数据库连接池前后的测试性能对比 关闭Hibernate默认连接池 hibernate connection pool size0使用Hibernate的C3P0数据库连接池 hibernate c3p0 max size30hibernate c3p0 min size5hibernate c3p0 timeout300hibernate c3p0 max statements50hibernate c3p0 idle test period3000 数据库连接池测试用Java代码 demo Configurationcf newConfiguration configure SessionFactorysf cf buildSessionFactory Sessionsession sf openSession longt1 System currentTimeMillis for inti 0 i 1000 i Transactiontx session beginTransaction session createQuery fromBookwhereid 1 Bookb1 newBook b1 setName test3 b1 setPublisher publisher1 session save b1 session delete b1 mit longt2 System currentTimeMillis System out println Totaltime t2 t1 ms EhCache简介 1 EhCache是什么EhCache是Hibernate的二级缓存技术之一 可以把查询出来的数据存储在内存或者磁盘 节省下次同样查询语句再次查询数据库 大幅减轻数据库压力 2 EhCache的使用注意点当用Hibernate的方式修改表数据 save update delete等等 这时EhCache会自动把缓存中关于此表的所有缓存全部删除掉 这样能达到同步 但对于数据经常修改的表来说 可能就失去缓存的意义了 不能减轻数据库压力 3 EhCache使用的场合3 1比较少更新表数据EhCache一般要使用在比较少执行write操作的表 包括update insert delete等 Hibernate的二级缓存也都是这样 3 2对并发要求不是很严格的情况两台机子中的缓存是不能实时同步的 Hibernate cfg xml配置Book hbm xml配置创建EhCache xml EhCache的配置 EhCache xml实例 Java代码 EhCache的查询缓存 Sessionsession HibernateSessionFactory getSession Transactiontx null longt1 System currentTimeMillis for intii 0 ii 10000 ii try tx session beginTransaction Queryquery session createQuery fromBook 激活查询缓存query setCacheable true 使用自定义的查询缓存区域 若不设置 则使用标准查询缓存区域query setCacheRegion longTime Listlist query list for inti 0 i list size i Bookb1 Book list get i mit catch HibernateExceptione e printStackTrace longt2 System currentTimeMillis System out println Totaltime t2 t1 ms Hibernate对大字段的处理 Blob Clob 在 hbm xml和Javapojo类中做好映射 类型为java sql Blob写入Blob字段示例为保证字符集一致 注意mysql连接url应该修改为jdbc mysql localhost 3306 mytest useUnicode true characterEncoding utf 8读出Blob字段示例 向数据库写入Blob字段代码示例 FileInputStreamfileInputStream newFileInputStream d 001 jpg Blobphoto Hibernate createBlob fileInputStream try Configurationcfg newConfiguration configure SessionFactorysf cfg buildSessionFactory Sessionsession sf openSession Transactiontx session beginTransaction Newbookb newNewbook b setName Java2 b setCoverimage photo session save b mit session close sf close catch HibernateExceptione TODOAuto generatedcatchblocke printStackTrace 从数据库读出Blob字段代码示例 Configurationcfg newConfiguration configure SessionFactorysf cfg buildSessionFactory Sessionsession sf openSession Transactiontx session beginTransaction Queryqr session createQuery fromNewbookwherename Java2 Listlist qr list Newbookb list get 0 InputStreaminputStream b getCoverimage getBinaryStream FileOutputStreamfileOutputStream newFileOutputStream getServletContext getRealPath photo1 jpg true byte buf newbyte 1 intlen 0 while len inputStream read buf 1 fileOutputStream write buf 0 len inputStream close fileOutputStream close mit session close sf close 版本管理软件Subversion Subversion 简称SVN 是一个开放源代码的版本控制系统 相对于的RCS CVS 采用了分支管理系统 它的设计目标就是取代CVS 互联网上越来越多的控制服务从CVS转移到Subversion 版本控制之于程序员 就好比安全网之于高空秋千表演者 知道安全网就在那里 万一自己摔落它能够提供保护 高空秋千表演者才能放心大胆地在空中飞跃 同样 版本控制使您有能力去冒以往想都不敢想的风险 如果哪儿出了错 您总是可以使自己的代码回复到一个已知的 工作正常的版本 Subversion一般分为服务器和客户端两部分 Subversion服务器一般在官方网站上下载TortoiseSVN在windows下非常受到欢迎的客户端 可与资源管理器集成Subclipse是eclipse myeclipse上的一个客户端插件 Subversion服务器安装配置 建立版本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论