Hibernate是怎么工作的——Hibernate的工作流程

举个简单的样例说明:

1.Base.java

package cn.flymouse.hibernate;

import java.util.Date;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import cn.flymouse.hibernate.domain.User;

public class Base {

	public static void main(String[] args) {
		//读取并解析配置文档hibernate.cfg.xml文件
		Configuration cfg = new Configuration().configure();
		//读取并解析映射文件,以Configuration创建SessionFactory
		SessionFactory sf = cfg.buidSessionFactory();
		//创建session
		Session session = sf.openSession();
		//开启事务
		Transaction tx = session.beginTransaction();
		//持久化操作
		User user = new User();
		user.setBirthday(new Date());
		user.setName("name");
		session.save(user);
		//提交事务
		tx.commit();
		//关闭Session
		session.close();
		//关闭SessionFactory
		sf.close();
	}
}

2.User.java

package cn.flymouse.hibernate.domain;

import java.util.Date;

public class User {
	private int id;
	private String name;
	private Date birthday;

	public int getId() {
		return id;
	}
	pubilc String getName(){
		return name;
	}
	public Date getBirthday() {
		return birthday;
	}

	public void setId(int id) {
		this.id = id;
	}
	public void setName(String name) {
		this.name = name;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
}

3.User的映射文件User.hbm.xml(跟User类放同个文件夹):

<?

xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.flymouse.hibernate.domain">

	<class name="User">
		<id name="id">
			<generator class="native" />
		</id>
		<property name="name" unique="false"/>
		<property name="birthday" />
	</class>

</hibernate-mapping>

4.hibernate的配置文件hibernate.cfg.xml(放在类路径下,即src文件夹下):

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql:///test</property>
		<property name="connection.username">root</property>
		<property name="connection.password">123456</property>
		<!-- 方言,用于生成SQL语句 -->
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<!-- 自己主动建表 -->
		<property name="hbm2ddl.auto">create</property>
		<property name="show_sql">true</property>

		<mapping resource="cn/flymouse/hibernate/domain/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>
时间: 2024-11-12 06:20:52

Hibernate是怎么工作的——Hibernate的工作流程的相关文章

Hibernate学习---第一节:hibernate配置和入门程序

一.ORM 简介: ORM 全称是 Object\ Relation Mapping, 即对象\关系映射 ORM 可以理解为一种规范,具体的 ORM 框架可作为应用程序和数据库的桥梁 面向对象程序设计语言与关系型数据库发展不同步时,需要一种中间解决方案,ORM 框架就是这样的解决方案 ORM 不是具体的产品,是一类框架的总称,基本特征: (1).完成面向对象的程序设计语言到关系数据库的映射 (2).基于 ORM 框架完成映射后,即可利用面向对象程序设计语言的简单易用性,又可利用关系型数据库的技术

Hibernate入门篇——第一个Hibernate应用

Hibernate入门 第一步: 挑选jar包 在工程下新建lib文件夹,然后将Hibernate基本包复制进去.可以采用Maven来获取这些包: <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.7.Final</version> </dependency> 也可

个人的工作总结(和工作规划)

写在前面: 结合我的工作经验,我对未来工作做出了一些规划.算是想法的总结,我希望能达到有效的沟通.请指正我哪里有不合适的.告诉我哪里能做,哪里不能做,哪里不足. 现在,我已经养成一个engineer思维,所以我可以教授如何像一个engineer一样思考. 思维方式: Engineer和scientist的思维方式,完全不同. Scientist:why Analyze:注重原理,从简入繁(从现象,原因,分析各种复杂的因素) Engineer:how Realize:注重实现.化繁为简(将原理用工

hibernate 大对象类型的hibernate映射

基本知识: 在 Java 中, java.lang.String 可用于表示长字符串(长度超过 255), 字节数组 byte[] 可用于存放图片或文件的二进制数据. 此外, 在 JDBC API 中还提供了 java.sql.Clob 和 java.sql.Blob 类型, 它们分别和标准 SQL 中的 CLOB 和 BLOB 类型对应. CLOB 表示字符串大对象(Character Large Object), BLOB表示二进制对象(Binary Large Object) Mysql

Hibernate笔记①--myeclipse制动配置hibernate

Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命 意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任. Hibernate笔记①--myeclipse制动配置hibernate

Hibernate框架 主配置文件(Hibernate.cfg.xml) 映射配置 说明

Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final\project\etc\hibernate.properties   <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hiber

职场如何汇报工作-不会汇报工作如何混职场

在工作中我们一般会遇到这样的问题,这个问题到底需不需要跟领导汇报,如何跟领导汇报,跟领导汇报后为什么领导不满意等问题,下面我们简单的聊一聊关于职场中如何汇报工作. 工作汇报一般分为两种:(1)口头汇报(2)书面的汇报(邮件.表格.图等) 工作汇报是一种工作的重要内容也是展示自己工作成就的机会,工作报告无论对于员工还是老板来说都是极其重要的.员工需要展示自己,老板需要了解员工,企业需要向外界展示企业经营成果这些都是体现在工作的总结汇报之中. 工作汇报的有一下的意义:(1)自我提升的基础,通过每日的

不要抱着打工心态去工作,而是把工作当创业

360周鸿祎反而最为开明,他说“不要抱着打工心态去工作,而是把工作当创业”,就像是,鼓励你拿着公司的工资,锻炼自己的能力,为自己以后创业积累资源和人脉(读书笔记:真是天底下最好的机会,天底下没有比工作更开心的事情了)——在这个过程中,公司也不亏,个人成长必然伴随着公司业务的发展(读书笔记:自己发挥主观能动性和能力拼命的产品做好了,公司当然成长,效果就是没有期权胜似期权). 在老周看来,只有抱着“为自己做事”的态度,才具备非一般的热情和主观能动性. 所以说,企业要成长,员工也要成长,对于核心技术.

攻城狮在路上(壹) Hibernate(七)--- 通过Hibernate操纵对象(下)

一.与触发器协同工作: 当Hibernate与数据库的触发器协同工作时,会出现以下两类问题: 1.触发器使Session缓存中的数据和数据库中的不一致: 出现此问题的原因是触发器运行在数据库内,它执行的操作对Session是透明的. 解决方案:在执行完包含有触发器的操作之后,立刻调用Session的flush()和refresh()方法,迫使Session的缓存与数据库同步. 2.Session的update()方法盲目的激发触发器: 这种情况主要发生在Session调用update()或sav

hibernate学习笔记02-- eclipse 下 hibernate+mysql 的实现。

hibernate 环境的配置步骤: 加入 hibernate 所需的 jar 包,并将这些 jar 添加到 project 中,如图: hibernate.cfg.xml 的建立.hibernate 的 hibernate.cfg.xml 配置文件默认在 project/src 目录下,如图: hibernate.cfg.xml 中的内容如下(当然,这是从 hibernate 的参考文档中拷贝过来的,还未修改): <?xml version='1.0' encoding='utf-8'?>