ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:305.30KB ,
资源ID:29159738      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29159738.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(hibernate教学学习文档.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

hibernate教学学习文档.docx

1、hibernate教学学习文档1 hibernate入门1.1 框架介绍1.2 回顾 传统使用JDBC开发 使用工具包,DbUtils (commons-.)1.3 hibernate 介绍 轻量级:依赖其他内容较少,消耗资源成本少。 持久层:与数据库进行数据交换。 ORM ,对象关系映射(object relation mapping) 对象:java一切都是对象,一般情况使用JavaBean 关系:数据库中的表(二维表) 映射:配置文件 1.4 流行框架2 第一个案例2.1 编写步骤 创建java项目 导入jar包 核心配置文件 hibernate.cfg.xml (configurati

2、on) JavaBean + 映射文件 (bean名称.hbm.xml) 注意:必须将映射文件,添加核心配置文件中 操作 api2.2 导入jar包 版本:3.6.10 导入jar(n个) %h%/hibernate3.jar 核心 %h%/librequired 必须目录下的所有 %h%/libjpa java 规范(java persist api)java持久api,hibernate对其支持(一般注解开发) 注意:数据驱动 2.3 核心配置文件 名称:hibernate.cfg.xml 位置:src (classpath) 内容:(driver、url、username、passwor

3、d、 方言) 约束 com.mysql.jdbc.Driver jdbc:mysql:/localhost:3306/h_day01_db root 1234 org.hibernate.dialect.MySQL5Dialect 注意:必须手动创建数据库 2.4 javabean和映射文件2.4.1 javabean 字段public class User private Integer uid; /注意:必须是整形 private String username; private String password;2.4.2 映射文件 名称:User.hbm.xml 位置:javabean同

4、包 内容:(配置javabean属性 和 表中字段 对应关系) 约束 注意:映射文件必须添加到核心配置文件中 解决方案:hibernate.cfg.xml 表不存在方案1:数据库手动创建表(建议)方案2:hibernate自动创建(上课优先) 3 CRUD操作添加:save更新:update删除:delete通过id查询 ,get(Class , id)查询所有:new Query(from .).list()分页: setFirstResult(int) setMaxResults(int)Test public void demo04() Configuration config = ne

5、w Configuration().configure(); SessionFactory sessionFactory = config.buildSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction(); /分页查询 ,提供hibernate提供的api分页 / * 回顾sql select * from t_user limit startIndex,pageSize; / * startIndex 开始索引 / * pageSize 每页显示个数 Query

6、query = session.createQuery(from User); / 第一页/ query.setFirstResult(0);/ query.setMaxResults(2); / 第二页 query.setFirstResult(2); /回顾算法: startIndex = (pageNum - 1 ) * pageSize; query.setMaxResults(2); List allUser = query.list(); for (User user : allUser) System.out.println(user); session.getTransacti

7、on().commit(); /获得之前开启的事务 session.close(); sessionFactory.close(); Test public void demo03() Configuration config = new Configuration().configure(); SessionFactory sessionFactory = config.buildSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction(); /查询所有-使用hiber

8、nate 查询 query 语句 hql / * hql hibernate提供面向对象的查询语句,类似与sql / * sql 格式: select 表中字段 from 表名 where . ,例如: select * from t_user / * hql 格式:select 对象属性 from 对象 where . ,例如:from User Query query = session.createQuery(from User); List allUser =query.list(); for (User user : allUser) System.out.println(user)

9、; session.getTransaction().commit(); /获得之前开启的事务 session.close(); sessionFactory.close(); Test public void demo02() Configuration config = new Configuration().configure(); SessionFactory sessionFactory = config.buildSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransa

10、ction(); /通过id查询 User user = (User)session.get(User.class, 1); System.out.println(user); session.getTransaction().commit(); /获得之前开启的事务 session.close(); sessionFactory.close(); Test public void demo01() User user = new User(); user.setUid(1); user.setUsername(杰克); Configuration config = new Configura

11、tion().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); /更新 - 通过id更新所有内容,如果没有设置null session.update(user); mit(); session.close(); factory.close(); 4 api详解4.1 结构图PO persistent object 持久对象

12、应用程序通过po类与hibernate进行交互。4.2 Configuration hibernate 提供用于加载配置文件的。 核心配置文件种类:hibernate.properties 和 hibernate.cfg.xml 一般情况使用 hibernate.cfg.xml ,可以配置不同内容(基本信息,映射文件) hibernate.properties 只能配置基本信息(key=value) 参考:%h%/project/etc/hibernate.properties 构造方法,new Configuration() hibernate将加载 hibernate.properties

13、 配置文件 提供方法:configure() 加载hibernate.cfg.xml 配置文件 通过 configure(String ) 指定自定义的cfg.xml文件。 加载映射文件 hbm.xml addResource() 加载自定义的映射文件。例如:config.addResource(cn/itcast/domain/User.hbm.xml); addClass() 加载自定义映射文件。例如:config.addClass(User.class); 建议:映射文件与Java通同名同包,且扩展名为hbm.xml 注意:如果重复添加JavaBean,提示错误 4.3 SessionF

14、actory hibernate提供 工厂,用于生成session 每一个应用程序只能有一个实例(单例),类似Jdbc时学习的连接池 线程安全的,及不同的线程都可以获得不同session。 获得实例 configuration.buildSessionFactory() 获得session openSession() 创建一个回话,每执行一次,session都是新的。 getCurrentSession() 获得当前线程中绑定的session,暂时不能用。 SessionFactory 缓存配置信息(例如: hibernate.cfg.xml / .hbm.xml 配置内容)4.4 Sessi

15、on hibernate 提供 操作 PO类 线程不安全,及每一个用户必须独享自己的session。 常用api save/update/delete/createQuery (list/setFirstResult/setMaxResults) 操作事务 session.beginTransaction() 开启事务 session.getTransaction() 获得当前事务4.5 事务操作 开启事务:beginTransaction() 提交事务:commit() 回滚事务:rollback()5 主配置文件详解 名称:hibernate.cfg.xml 位置:src (classpa

16、th) - WEB-INF/classes 配置 BeanFactory异常 原因:java web 6.0项目,默认进行Bean校验,通常不使用。 解决方案: 方案1:删除此jar 方案2:hibernate 配置取消 com.mysql.jdbc.Driver jdbc:mysql:/h_day01_db root 1234 org.hibernate.dialect.MySQL5Dialect true true none thread6 问题 如果使用session.openSession() 可以通过执行多次 session.beginTransaction() 进行多次事务操作。

17、但如果使用session.getCurrentSession() 只能使用一次,如果进行提交,默认情况下,将进行session.close(),解决此问题,spring采用 OpenSessionInViewFilter 过滤器。Test public void demo01() Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.getCurrentSession(); /

18、开启事务 Transaction transaction = session.beginTransaction(); /* 操作 User user = new User(); user.setUsername(rose2); user.setPassword(1234); session.save(user); /5 提交 mit(); /再开启 Spring OpenSessionInViewFilter Transaction transaction2 = session.beginTransaction(); /* 操作 User user2 = new User(); user2.s

19、etUsername(tom); user2.setPassword(1234); session.save(user2); /5 提交 mit(); /6 释放 session.close(); /7 关闭工厂 factory.close(); 7 映射文件详解 文件名称: javabean名称.hbm.xml 位置:javabean同包 内容:7.1 约束7.2 属性基本设置普通属性 name : 默认用于配置javabean属性名称 length : 配置长度,字符串默认255,mysql类型 varchar(255) column : 当前属性对应表中字段(列)名称,默认name的值

20、方式1:column属性(attribute) , 方式2:子标签 type: 数据字段类型 方式1:hibernate类型,例如:string 方式2:java类型,例如:java.lang.String 方法3:mysql类型,例如:varchar(50) 日期时间类型 date , 日期 java.util.Date , 对应jdbc类型:java.sql.Date time , 时间 java.util.Date , 对应jdbc类型:java.sql.Time timestamp,时间戳 java.util.Date (注意:时间戳随着数据更改变化) , 对应jdbc类型:java.sql.Timestamp 项目使用: 字符串、long (date.getTime()、日期时间

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1