hibernate入门

Hibernate介绍:

持久化java对象

封装了JDBC,实现了or-mapping一个开源的持久层框架

orm:Object Relation Mapping

Jdbc特点:

操作代码复杂

* JDBC的应用与数据库耦合度强

* JDBC的应用很难做到轻松的数据库移植

不能实现对数据的缓存

对象 与 关系之间的转换,需要用户实现

性能高(数据量非常庞大的情况)

Hibernate特点:

封装了JDBC底层的操作

* Hibernate的应用与数据库耦合度低

不再需要使用sql语句,直接操作对象

* orm的实现,抵抗不匹配

User{uid,username....}

save(user);

映射(xml

t_user(uid,username)

做不到sql优化

缓存的实现

不适合对数据量非常庞大的系统

Hibernate的使用: 

搭建环境:  

 hibernate 3.5

 hibernate3.5\lib\require\*.jar

1.antlr-2.7.6.jar-------------------语言转换工具(hql语句)

2.commons-collections-3.1.jar-------增强java处理集合的能力

3.dom4j-1.6.1.jar-------------------解析XML

4.jta-1.1.jar-----------------------提供标准Java事务处理接口

//3.5源代码中没有如下两个jar(log4j.jar,  slf4j-log4j12.jar),在hibernate3.4\lib\test\下找

 

下面四个jar包都与日志系统有关

5.log4j.jar-------------------------处理日志

6.slf4j-log4j12.jar-----------------日志系统

7.slf4j-api-1.5.8.jar---------------日志系统

8.commons-logging-1.1.jar

hibernate3.5\

9.hibernate3.jar--------------------核心Jar

以下四个jar包都与hibernate的懒惰式加载有关

10.asm.jar
11.backport-util-concurrent-2.1.jar
12. cglib-2.1.3.jar
13.Javassist-3.9.0.GA.jar------------Java类提供扩展功能

数据库驱动

14.mysqldriver.jar-------------------数据库驱动

配置文件

 * 映射文件(实现映射)User.hbm.xml

 * 配置文件(底层数据库连接信息,hibernate\project\etc\hibernate.cfg.xml)

 

具体步骤

1.配置数据库的连接信息,需要查找两个文件,都在hibernate3.5.6/project/etc下,hibernate.cfg.xml, hibernate.properties

<!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="hibernate.connection.url">jdbc:mysql://localhost:3306/hdemo01</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">865631572</property>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<!--**配置所使用的数据库方言**-->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		
		<!-- 可选配置 -->
		<!-- 显示SQL语句 -->
		<property name="hibernate.show_sql">true</property>
		<!-- 格式化显示SQL语句 -->
		<property name="hibernate.format_sql">true</property>
		<!-- 表示由hibernate自动生成表结构 -->
		<property name="hibernate.hbm2ddl.auto">create</property>
		
		<!-- 必须配置加载的映射文件 -->
		<mapping resource="com/tarena/demo/po/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

2.实体类(领域模型,po  persistenceobject,pojo

User

uid

username

password

3.实现对象与关系的映射,新建User.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.tarena.demo.po.User" table="t_user">
		<id name="uid" column="uid">
			<generator class="identity"></generator>
		</id>
		<property name="userName"></property>
		<property name="userPassword"></property>
	</class>
</hibernate-mapping>


4.使用hibernate api 实现数据CRUD的操作

添加User

package com.tarena.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.tarena.demo.po.User;

public class TestApp {

	public static void main(String[] args) {
		User user = new User();
		user.setUserName("李瑞");
		user.setUserPassword("865631572");
		//保存底层连接信息
		Configuration cfg = new Configuration();
		//解析Hibernate配置文件
		cfg.configure();
		//创建session工厂
		SessionFactory factory= cfg.buildSessionFactory();
		//创建session(和hibernate之间的会话)
		Session session = factory.openSession();
		//开启事务(查询的时候不需要开启事务)
		Transaction tr = session.beginTransaction();
		//保存对象
		session.save(user);
		//提交事务
		tr.commit();
	}

}


项目结构:

你可能感兴趣的:(hibernate入门)