码迷,mamicode.com
首页 > Web开发 > 详细

hibernate 入门案例

时间:2017-05-08 14:35:23      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:uil   存储   mysq   管理类   term   www   hello   对象关系映射   配置   

hibernate框架介绍:

ORM概念(非常重要)

O,Object 对象.       R,Relation 关系.     M,Mapping 映射

ORM:对象关系映射!

ORM,攻克了什么问题?

存储:是否能把对象的数据直接保存到数据库中

获取:是否能直接从数据库拿到一个对象

要想做到上述两点,必需要有映射

总结:Hibernate与 ORM的关系:Hibernate是ORM的实现

怎样搭建一个Hibernate开发环境,开发步骤:

(1)下载源代码:版本号hibernate-distribution-3.6.0.Final

(2)引入jar文件 :Hibernate3.jar核心+required必须引入的(6个)+jsp文件夹+mysql驱动

(3)写对象以及对象的映射

Employee.java 对象

Employee.hbm.xml 对象的映射(一般我们使用hbm.xml结尾,这是为了区分Hibernate映射文件)

(4)src/hibernate.cfg.xml(这个文件的命名必须这样写)

1.Employee.java

package cn.itcast.hello;

import java.util.Date;

public class Employee {
	private int id;
	private String empName;
	private Date workDate;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getEmpName() {
		return empName;
	}
	public void setEmpName(String empName) {
		this.empName = empName;
	}
	public Date getWorkDate() {
		return workDate;
	}
	public void setWorkDate(Date workDate) {
		this.workDate = workDate;
	}
	
}
2.Employee.hbm.xml文件

主要包含主键映射和非主键映射

<?

xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="cn.itcast.hello"> <class name="Employee" table="employee"> <!-- 主键 映射--> <id name="id"> <generator class="native"></generator> </id> <!-- 非主键 映射 --> <property name="empName" column="empName"></property> <property name="workDate" column="workDate"></property> </class> </hibernate-mapping>

3.hibernate.cfg.xml文件

(1)数据库连接的配置.假设不懂能够去Hibernate源代码/project/etc/hibernate.properties找到复制粘贴就可以

(2)其它配置包含方言以及是不是自己主动建表的配置信息

(3)映射文件的引入.<mapping resource="配置文件的文件夹"/>

<!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>
		<!-- 1.数据库的配置信息 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///day25</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">169500</property>
		
		<!-- 2.其它配置信息。hibernate在执行的时候。会依据不同的方言生成符合当前数据库语法的sql语句 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
		<!-- 显示sql语句信息 -->
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.hbm2ddl.auto">create</property>
		<!-- 3.导入映射文件 -->
		<mapping resource="cn/itcast/hello/Employee.hbm.xml"/>
	</session-factory>
</hibernate-configuration>
4.測试类AppTest

编写步骤:

(1).获取载入配置文件的管理类对象.(2).载入配置文件.(3).创建session工厂对象.(4).创建session(代表的是一个对话。与数据库连接的会话).(5).开启事务.(6).与数据库的操作.(7).提交事务.(8).关闭资源.

package cn.itcast.hello;

import java.util.Date;

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.junit.Test;

public class AppTest {
	@Test
	public void test(){
		Employee emp=new Employee();
		emp.setEmpName("李卫康");
		emp.setWorkDate(new Date());
		//1.获取载入配置文件的管理类对象
		Configuration config=new Configuration();
		//2.载入配置文件
		config.configure();//默认载入的是src文件夹下的hiberate.xml文件
		//3.创建session工厂对象
		SessionFactory factory = config.buildSessionFactory();
		//4.创建session(代表的是一个对话。与数据库连接的会话)
		Session session = factory.openSession();
		//5.开启事务
		Transaction tx = session.beginTransaction();
		//6.与数据库的操作
		session.save(emp);
		//7.提交事务
		tx.commit();
		//8.关闭资源
		session.close();
		
	}
	
}
执行结果能够发现数据库中多了一个employee的表,并有一条记录

技术分享




hibernate 入门案例

标签:uil   存储   mysq   管理类   term   www   hello   对象关系映射   配置   

原文地址:http://www.cnblogs.com/yxysuanfa/p/6824551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!