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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

hibernate知识点详解王成敏.docx

1、hibernate知识点详解王成敏1 框架介绍2 回顾2.1 JDBC2.2 DBUtils3 ORM框架 hibernate 就是一个ORM框架4 hibernate介绍 版本:hibernate-distribution-3.6.10.Final-dist4.1 分析4.2 什么是hibernate Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架 轻量级:使用hibernate较少的依赖hibernate框架,只使用少量的api进行操作。 Hibernate提供了对关系型数据库增删改查操作 流行数据库框架 1 JPA Java Persistence

2、 API.JPA通过JDK 5.0注解或XML描述对象关系表的映射关系(只有接口规范) sun 对ORM框架推出一个规范(接口,没有实现),hibernate支持jpa 2 Hibernate 最流行ORM框架,通过对象-关系映射配置,可以完全脱离底层SQL 3 MyBatis 本是apache的一个开源项目 iBatis,支持普通 SQL查询,存储过程和高级映射的优秀持久层框架 4 Apache DBUtils 、Spring JDBCTemplate4.3 优点5 hello world(重要)5.1 编写流程 导入jar包 核心配置文件:hibernate.cfg.xml java对象:

3、javabean 映射文件:*.hbm.xml 需要将hbm.xml映射文件 添加到核心配置hibernate.cfg.xml中 操作api,进行添加操作:save5.2 导入jar包5.3 核心配置文件 位置:src 名称:hibernate.cfg.xml 约束: 正文内容 com.mysql.jdbc.Driver jdbc:mysql:/localhost:3306/h_day01 root 1234 org.hibernate.dialect.MySQL5Dialect update 5.4 java对象:JavaBeanpackage cn.itcast.a_hello;publi

4、c class Book private Integer bid; /注意:类型必须是整形 private String title; private String author; 5.5 映射文件 位置:和javabean同包 名称:Book.hbm.xml 约束: 正文内容: 注意:将映射文件 添加到 核心配置文件(hibernate.cfg.xml)中5.6 操作apiTest public void demo01() Book book = new Book(); /注意:必须要手动bid的值 book.setTitle(宝典); book.setAuthor(关系); /1 加载核心

5、配置文件 Configuration config = new Configuration().configure(); /2 获得sessionFactory,相当于连接池 SessionFactory factory = config.buildSessionFactory(); /3 获得session,相当于jdbc连接 Session session = factory.openSession(); /4开启事务 Transaction transaction = session.beginTransaction(); / 操作:添加 session.save(book); /5 提

6、交或回滚 commit() | rollback() mit(); /6 释放资源 session.close(); factory.close(); 6 整合日志log4j 6.1 java项目提示 日志没有生效6.2 日志框架介绍6.3 整合log4j log4j 核心jar 过滤jar log4j 核心配置文件 注意:只需要添加文件,不需要读懂内容,之后讲解。 7 CURD操作7.1 添加 Test public void demo01() /添加 Book book = new Book(); /注意:必须要手动bid的值 book.setTitle(宝典); book.setAuth

7、or(关系); /1 加载核心配置文件 Configuration config = new Configuration().configure(); /2 获得sessionFactory,相当于连接池 SessionFactory factory = config.buildSessionFactory(); /3 获得session,相当于jdbc连接 Session session = factory.openSession(); /4开启事务 Transaction transaction = session.beginTransaction(); / 操作:添加 session.s

8、ave(book); /5 提交或回滚 commit() | rollback() mit(); /6 释放资源 session.close(); factory.close(); 7.2 更新Test public void demo02() /更新 bid=3 title=葵花 Book book = new Book(); book.setBid(3); book.setTitle(葵花); Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessio

9、nFactory(); Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); /操作 session.update(book); /通过id更新所有的数据,如果没有设置值,将更新默认值 mit(); session.close(); factory.close(); 7.3 删除Test public void demo03() / 删除 bid=2 Book book = new Book(); book.setBid(2); Configuration c

10、onfig = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); /删除 ,通过id删除 session.delete(book); mit(); session.close(); factory.close(); 7.4 通过id查询Test public void demo04(

11、) / 通过 bid=4 Integer bid = 4; Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); /通过id查询 Book book = (Book)session.get(Book.class, bid); System.o

12、ut.println(book); mit(); session.close(); factory.close(); 7.5 查询所有Test public void demo05() / 查询所有 Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.openSession(); Transaction transaction = session.beginTransacti

13、on(); /需要hibernate提供hql语句进行查询 / * hql : hibernate query language 查询语言,面向对象的查询语言,类似与sql语句。 / * sql语句查询所有:select * from t_book -sql语句使用的表 / * hql语句查询所有:from Book -hql语句使用的对象 Query query = session.createQuery(from Book); List allBook = query.list(); for (Book book : allBook) System.out.println(book); m

14、it(); session.close(); factory.close(); 7.6 分页查询Test public void demo06() /分页查询 / * sql语句分页:select * from t_book limit ?,? / * 开始索引:startIndex,从0开始 。算法:startIndex = (pageNum - 1) * pageSize / * 每页显示个数:pageSize Configuration config = new Configuration().configure(); SessionFactory factory = config.bu

15、ildSessionFactory(); Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); /分页,在查询所有基础上 Query query = session.createQuery(from Book); / # 第一页 / * 设置开始索引 /query.setFirstResult(0); / * 设置每页显示个数 /query.setMaxResults(2); / # 第二页 / * 设置开始索引 query.setFirstResult(2)

16、; / (2 - 1) * 2 / * 设置每页显示个数 query.setMaxResults(2); List allBook = query.list(); for (Book book : allBook) System.out.println(book); mit(); session.close(); factory.close(); 8 api详解8.1 体系结构vo:value object ,值对象,使用在web层,用于显示数据。bo:business object,业务对象,使用在service层,根据不同页面封装对象,可能包含多个PO。po:persistent obje

17、ct,持久对象,与数据库进行数据交互的。一般情况使用javabean将三个对象统一。8.2 Configuration对象8.2.1 构造 用于加载src下的hibernate.properties文件,此文件为hibernate老版本中的核心配置文件,但现在已经不使用。 内容:properties中 key =value方式 例如:hibernate.connection.driver_class = com.mysql.jdbc.Driver hibernate提供参考文件 %hiberante%/project/etc/hibernate.properties 8.2.2 方法 核心配置

18、文件 ,加载的src下,hibernate.cfg.xml configure(/资源文件路径) , 加载指定目录下的资源文件 映射文件 hbm.xml 后缀固定的,必须与javabean同包。 addResource(xml文件) 加载指定位置的映射文件 核心配置加载时,hibernate将执行addResource加载配置的映射文件8.2.3 总结开发中,必须将hbm.xml 配置到 hibernate.cfg.xml文件中学习中,使用addClass 加载执行类的hbm.xml 文件,简化配置操作。8.3 SessionFactory对象 SessionFactory相当于连接池,可以提

19、供操作数据的Session对象。 SessionFactory 是线程安全,及不同的线程都可以使用。且可以保存,不同的线程获得session必须不同。8.3.1 获得方式SessionFactory factory = config.buildSessionFactory();8.3.2 方法/3.1 获得一个新的session , 每执行一次openSession() 将获得一个新的sessionSession session = factory.openSession();/3.2 获得当前线程中绑定的session,同一个线程共享一个session/ * 注意:默认情况下不能使用,必须进

20、行配置(暂时不用)Session session2 = factory.getCurrentSession();8.3.3 工具类public class H3Utils / 获得SessionFactory。相当于连接池,只有一个 private static SessionFactory factory; static factory = new Configuration().configure().buildSessionFactory(); /* * 获得一个新的session * return */ public static Session openSession() retur

21、n factory.openSession(); /* * 获得线程中绑定的session * return */ public static Session getCurrentSession() return factory.getCurrentSession(); 8.4 Session对象 相当于JDBC的连接Connection ,用于操作PO(持久)对象 session线程不安全的,及不同的线程必须使用不同的session。 常用方法: save:将指定PO保存数据库,底层将触发一条insert语句。 persist 是jpa提供的保存对象的方法,与save等效的。 update:

22、通过id更新所有的数据,底层将触发一条update语句。 saveOrUpdate:如果没有id值,将执行save 及 insert语句。 如果有id值,将执行update 及 update语句。 delete : 通过id删除 get : 通过id查询对象,立即查询,当执行get方法之后,马上触发select语句。如果没有查询到,返回null load : 通过id查询对象,延迟查询,当执行load方法之后,不触发select语句,直到使用了查询对象的具体的数据时,才触发select语句。如果没有查询到,将抛异常。 createQuery: 执行HQL语句 createSQLQuery:执行

23、sql语句 createCriteria : hibernate提供 QBC语句。(不研究) merge : 与saveOrUpdate非常相似,如果没有id值将执行insert语句 如果有id值,将执行select语句,如果数据没有变化,将不触发任何语句。 如果数据变化了,将触发update语句。8.5 事务transaction对象 开启事务:session.beginTransaction(); 提交事务:mit(); 回滚事务:transaction.rollback(); 获得当前事务:session.getTransaction();/开启session.beginTransaction();

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

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