SessionFactory sessionFactory = new Configuration().configure().
发表评论 663 views A+ 所属分类:Hibrenate Hibernate框架应用步骤 ---- 引入hibernate所需jar包 ---- 1.创建实体类,(最好实现序列化接口 DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org /dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> </hibernate-mapping> ``` 3.测试hibernate配置 ``` public session.getTransaction().begin(); // 5.操作 session.save(new Student("张三", 23, 93.5)); // 6. DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org
2.一级缓存应用: save()。当session对象调用save()方法保存一个对象后,该对象会被放入到session的缓存中。 get()和load()。 其原理是:第一次调用get()方法, Hibernate先检索缓存中是否有该查找对象,发现没有,Hibernate发送SELECT语句到数据库中取出相应的对象,然后将该对象放入缓存中,以便下次使用,第二次调用 -- EHCache的配置,hibernate.cfg.xml --> <hibernate-configuration> <session-factory> <! DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net /hibernate-mapping-3.0.dtd" > <hibernate-mapping> <class> <!
1.什么是Hibernate Framework? 对象关系映射或对象关系管理(ORM)是将应用程序域模型对象映射到关系数据库表的编程技术。 Hibernate是基于Java的ORM工具,它提供了一个框架,用于将应用程序域对象映射到关系数据库表,反之亦然。 Hibernate易于与其他Java EE框架集成,因此非常流行,Spring框架提供了将Hibernate与Spring应用程序集成的内置支持。 Hibernate支持JPA批注,因此代码独立于实现,可轻松地用其他ORM工具替换。JDBC代码与应用程序紧密结合。 往期推荐 【5】进大厂必须掌握的面试题-Java面试-spring 【4】进大厂必须掌握的面试题-Java面试-jdbc 原文始发于微信公众号(全栈程序员社区):【6】进大厂必须掌握的面试题-Hibernate
1.什么是Hibernate Framework? 对象关系映射或对象关系管理(ORM)是将应用程序域模型对象映射到关系数据库表的编程技术。 Hibernate是基于Java的ORM工具,它提供了一个框架,用于将应用程序域对象映射到关系数据库表,反之亦然。 Hibernate易于与其他Java EE框架集成,因此非常流行,Spring框架提供了将Hibernate与Spring应用程序集成的内置支持。 Hibernate配置可帮助我们将JDBC之类的连接以及JNDI DataSource用于连接池。这是企业应用程序中非常重要的功能,而JDBC API完全没有。 Hibernate支持JPA批注,因此代码独立于实现,可轻松地用其他ORM工具替换。JDBC代码与应用程序紧密结合。
" 4 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5 6 <! .examples; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 // 标准注解 7 8 import javax.persistence.CascadeType javax.persistence.Column; 4 import javax.persistence.Entity; 5 import javax.persistence.FetchType; 6 descripton; 86 } 87 88 } 测试代码: HibernateTest.java 1 /** 2 * 3 */ 4 package com.b510.examples; 5 6 category0_.id as id1_0_, 6 category0_.description as descript2_1_0_, 7 category0_.name
Hibernate框架的配置一般可以分为以下几个步骤: 1.添加基本的Hibernate Jar包 2.添加注解的Jar包 3.编写Hibernate.cfg.xml文件 4.编写POJO文件,并编写注释 " 4 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5 6 <! ; 11 import javax.persistence.Table; 12 13 /** 14 * 部门类 15 * 时间:2014年5月8日 16:06:54 16 * 修改:2014年6月 com.basehibernate.pojo; 2 3 import java.util.List; 4 5 import javax.persistence.Entity; 6 ; 2 3 /** 4 * POJO注解导入数据库测试类 5 * 用于测试Annotation注解的POJO类是否能自动生成数据库表 6 * 时间:2014年6月4日 10:15:06
一、什么是 Hibernate? 大多数情况下特别是企业级应用,数据持久化往往也就意味将内存中的数据保存到磁盘上加以固化,而持久化的实现过程则大多通过各种关系数据库来完成。 工程,导入Hibernate的核心jar包、支持C3P0数据库连接池的jar包: c3p0-0.9.5.2.jar hibernate-c3p0-5.2.17.Final.jar org.hibernate hibernate-core 5.2.17.Final org.hibernate hibernate-c3p0 5.2.17.Final com.mchange c3p0 0.9.5.2 2 pro.setP_price(12.55); pro.setP_phone("02985368888"); pro.setP_address("咸阳"); //6.
Hibernate第一天(Hibernate的环境搭建、Hibernate的API、Hibernate的CRUD) 1.1以前学习过Hibernate,不过学习的不太扎实,做的项目也不太多,好久时间没用 1.2 Hibernate框架的学习路线 第一天:Hibernate的入门(Hibernate的环境搭建、Hibernate的API、Hibernate的CRUD) 第二天 1.4 Hibernate的入门 1.4.1 Hibernate的入门 1.4.1.1 下载Hibernate的开发环境 Hibernate3.x Hibernate4.x Hibernate5 Customer customer = new Customer(); customer.setCust_name("王西"); session.save(customer); // 6. session.saveOrUpdate(customer); tx.commit(); session.close(); } @Test // 查询所有 publicvoid demo6(
下载地址:http://www.hxtt.com/access.zip,http://www.hxtt.com/test/hibernate.zip。 配置如下:(URL那里可以使用相对路径) xml 代码 <property name="<em>hibernate</em>.dialect"> com.hxtt.support.hibernate.HxttAccessDialect Hibernate描述文件可以是一个properties或xml 文件,其中最重要的是定义数据库的连接。我这里列出的是一个XML格式的hibernate.cfg.xml描述文件。 DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> <hibernate-configuration
这篇主要讲 hibernate缓存 1.缓存的作用是为了提高效率 2.Hibernate的开发效率比较高,但是执行效率相对较低。 3.Hibernate提供了缓存来提高效率。 hibernate缓存分为:一级缓存,二级缓存,查询缓存。 4.一级缓存又称为 session缓存,是线程级别的缓存。 LRU ---最近最少使用,FIFO 、LFU 、LRU ; 6.二级缓存的实现步骤 a). 在 hibernate.cfg.xml 的通用配置中,开启二级缓存和 3.x 不一致 <! 也就是首先要先开启二级缓存,查询缓存的配置,在hibernate.cfg.xml中添加通用配置 <!
DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http ://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <! -- 数据库方言 MySQL --> <property name="<em>hibernate</em>.dialect">org.hibernate.dialect.MySQLDialect</property -- 连接池 C3P0 --> <property name="<em>hibernate</em>.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider ="hibernate.format_sql">true</property> <!
前言: 上一篇简单的讲解了下Hibernate的基础知识。这里对Hibernate比较重要的一些知识点,进行总结和归纳。 关于Hibernate映射 关于Hibernate的映射要说明的一点就是关于ID的访问权限,property以及field的区别。以前使用的时候根本没有注意过这个问题,这里简单的强调一下。 由于hibernate在访问实体模型时,是不考虑权限的,因此这样就避免了用户指定主键。 另外一个知识点就是,如果不通过property指定一个列,而使用field。 那么hibernate就会直接访问属性,而不会通过get set访问属性。 关于对象映射标识符OID 这一块相对来说也是hibernate的重点,什么是OID?如何指定OID? Session缓存中的状态变更 这又是Hibernate的一大块重点! ?
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> < 和JPA注解一样,如果验证注解添加到字段上,Hibernate就会直接读取字段的值。如果注解到Getter方法上,Hibernate就会调用方法取得值。 在一个类中不要同时应用这两种方式,会导致重复验证的问题。如果在一个集合上应用Valid注解, Hibernate就会递归验证集合中的每一个元素。 public class Author { @NotNull @Size(min = 6, max = 15) @Pattern(regexp = "([a-zA-Z]+\d*) +") private String username; @NotNull @Size(min = 6, max = 20) private String password
在持久化类中, 二进制大对象能够声明为 byte[] 或 java.sql.Blob 类型; 字符串能够声明为 java.lang.String 或 java.sql.Clob 实际上在 Java 应用程序中处理长度超过 news.setTitle("CC"); InputStream stream = new FileInputStream("Hydrangeas.jpg"); Blob image = Hibernate.getLobCreator
这篇主要简单间接 hibernate查询 1.数据库操作中最重要的是查询,Hibernate提供了多种查询方式来帮助程序员快速实现查询功能。 2.Hql 查询: Hql :hibernate query language,Hiberante查询语言。 list){ System.out.println(b.getName()+"--"+b.getAuthor()); } } } 4.本地 sql 查询: hibernate Projections.countDistinct("id")) .uniqueResult(); System.out.println(result); } } 6. 过滤查询 a).定义过滤器---在hibernate-mapping中定义 <!
hibernate:全自动映射 ORM框架,不需要自己手动去写SQL语句 mybatis:半自动ORM框架,需要自己手动去写SQL语句 hibernate以及mybatis区别 开发速度 二级缓存是 SesionFactory级别的缓存,从应用启动到应用结束有效。 Hibernate对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件,如果用hibernate开发可以节省很多代码,提高效率。 MyBatis容易掌握,而Hibernate门槛较高。 Hibernate优势 Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。 Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。 Hibernate有更好的二级缓存机制,可以使用第三方缓存。
Hibernate映射的基本结构 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java)、映射文件(*.hbm.xml)和数据库配置文件(*.properties/* > hibernate.cfg.xml文件中链接数据库的信息 <hibernate-configuration> <session-factory > <property name="<em>hibernate</em>.connection.driver_class :3306/<em>hibernate</em>_first</property> <property name="hibernate.connection.username">root</property> < org.hibernate.dialect.MySQLDialect</property> <mapping resource="com/tgb/<em>hibernate</em>/User.hbm.xml" /> </session-factory> </hibernate-configuration> Hibernate实现的关系映射 上面的代码就是基本映射的体现,接下来会继续介绍常用的关系映射
Hibernate设计了CriteriaSpecification作为Criteria的父接口,以下提供了Criteria和DetachedCriteria. , “Fritz%”, Hibernate.STRING)) .list(); {alias}占位符应当被替换为被查询实体的列别名. mate”,FetchMode.EAGER) .setFetchMode(“kittens”,FetchMode.EAGER) .list(); 这个查询能够通过外连接抓取mate和kittens. 6. 查询演示样例 org.hibernate.criterion.Example类同意你通过一个给定实例构建一个条件查询. 是Projection的实例工厂.我们通过调用setProjection()应用投影到一个查询.
Hibernate配置 核心配置文件 映射配置文件 配置本地的DTD约束 01 核心配置文 Hibernate核心配置文件传递的是连接数据库的必备信息,还有一些可选配置,所以在一个使用Hibernate DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http ## MySQL #hibernate.dialect org.hibernate.dialect.MySQLDialect #hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org