Hibernate 总结笔记(2)Hibernate入门案例

搭建 Hibernate 环境

step 1 : 导入hibernate的jar包


Step 2 : 创建实体类(要求实体类必须有一个属性唯一值、表也要有字段作为唯一值)

Step 3 : 配置实体类和数据库表的映射关系,也就是创建映射配置文件

1) 创建xml格式的配置文件,一般命名为xxx.hbm.xml,xxx为实体类名称

2)在配置文件引入xml约束,在hibernate引如的约束为dtd约束

3)配置映射关系

代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
    	<class name = "cn.hauyu.entity.User" table = "t_user">
    		<id name="id" column="id">
    		<generator class="native"></generator>
    		</id> 
    		<property name="name" column="name"></property>
    		<property name="password" column="password"></property>
    		<property name="age" column="age"></property>
    	</class>
    </hibernate-mapping>

Step 4 : 配置hibernate的核心配置文件(和step 3 基本步骤是相同的)

1) 创建核心配置文件,核心配置文件的名称和位置固定,位置:src下面;名称:hibernate.cfg.xml

2) 引入约束

3)配置hibernate信息

(1)配置数据库信息(目的:加载数据库)(必须)

(2)配置hibernate信息(目的:初始化hibernate的参数,决定何种功能开启)(不必须)

(3)引入映射配置文件(目的:因为hibernate只会加载核心配置文件,因此需要将映射文件引入,才能加载映射配置文件)(必须)

<<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
	<hibernate-configuration>
		<session-factory>
		<!-- 第一部分:配置数据库 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///hibernate_test01</property><!-- 注意数据库需要自己创建 -->
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">931210</property><!-- 注意密码为自己数据库的密码  -->
		<property name="hibernate.show_sql">true</property>
		
		<!-- 第二部分:配置Hibernate附加功能是否开启 -->
		<property name="hibernate.format_sql">true</property><!-- 输出底层sql语句格式 -->
		<property name="hibernate.hbm2ddl.auto">update</property><!-- 自动创建表 ,如果没有这个需要自己创建表-->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 允许方言 -->
		
		<!-- 第三部分: 把映射文件放到核心配置文件中 必须的-->
		<mapping resource="cn/huayu/entity/User.hbm.xml"/>
		</session-factory>
	</hibernate-configuration>


+++++++++++++++++++++++++++++++hibernate的环境基本熵就搭建完成了,下面就是hibernate的操作了++++++++++++++++++++++++++++++++++++++++++

示例:实现添加操作:

Step 1:加载hibernate核心配置文件

Step 2: 创建SessionFactory对象

Step 3: 使用SessionFactory创建session对象

Step 4: 开启事务

Step 5 :写具体逻辑crud操作

Step 6: 提交事务

Step 7 : 关闭资源

(事物:是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行)

代码部分:

public void testAdd(){
	Configuration config = new Configuration();//Step 1
	config.configure();
	SessionFactory sessionFactory = cfg.builSessionFactory();//Step.2,注意:SessionFactory的创建耗费时间,一般一个项目只需要一个
	Session session = sessionFactory.openSession();//Step 3
	Transaction tx = session.beginTransaction();//Step 4
	User user = new User();//Step5
	user.setUsername("小明");
	user.setPassword("123");
	user.setAge("20");
	session.save(user);
	tx.commit();//Step 6
	session.close();//Step 7
	sessionFactory.close();
}


由于step 2 代码耗时,因此建立一个Utils类,优化代码如下:(注意:文档中的代码不是全部代码)

public class HibernateUtils{
	private static  Configuration config = null;
	private static  SessionFactory sessionFactory= null;
	static{
		config = new Configuration();
		config.configure();
		sessionFactory = config.buildSessionFactory();
	}
	public staic SessionFactory getSessionFactory(){
		return sessionFactory;
	}
}
Public class TestDemo{
	public void testAdd(){
		SessionFactory sessionFactroy = HibernateUtils.getSessionFactory();//Step 1、2
		Session session = sessionFactory.openSession();//Step 3
		Transaction tx = session.beginTransaction();//Step 4
		User user = new User();//Step5
		user.setUsername("小明");
		user.setPassword("123");
		user.setAge("20");
		session.save(user);
		tx.commit();//Step 6
		session.close();//Step 7
		sessionFactory.close();
	}
}





完整程序地址:https://github.com/HuayuJia/Learnhibernate



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值