hibernate 框架开发环境搭建

Hibernate 是一个持久层框架,是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,

它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员

可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合


 Hibernate 开发环境搭建步骤:

1)   创建一个 web工程

2)   导入相关的 jar

3) 创建一个 Student

         这个类为普通的Java类,写入getter setter方法。

package com.hibernate.vo;

public class Student {
	private Integer studentId;//必须提供一个ID
	private String studentName;
	private String homeAddress;
	private String schoolAddress;
	private Integer age;
	public Integer getStudentId() {
		return studentId;
	}
	public void setStudentId(Integer studentId) {
		this.studentId = studentId;
	}
	public String getStudentName() {
		return studentName;
	}
	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}
	public String getHomeAddress() {
		return homeAddress;
	}
	public void setHomeAddress(String homeAddress) {
		this.homeAddress = homeAddress;
	}
	public String getSchoolAddress() {
		return schoolAddress;
	}
	public void setSchoolAddress(String schoolAddress) {
		this.schoolAddress = schoolAddress;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Student(Integer studentId, String studentName, String homeAddress,
			String schoolAddress, Integer age) {
		super();
		this.studentId = studentId;
		this.studentName = studentName;
		this.homeAddress = homeAddress;
		this.schoolAddress = schoolAddress;
		this.age = age;
	}
}

4)   写一个Student类的映射文件

           写一个 *.hbm.xml的配置文件,*表示要映射的实体类(Student

         导入约束(如果没有可复制的,需要与你导入的 jar包的版本一致)

找到 hibernate的核心包,我这里是hibernate3.jar。打开,找到dtd文件

选择 hibernate-mapping-3.0.dtd,打开即可找到约束

             类名映射表名、属性映射列名

            每个实体类都要一个映射文件,需放在与实体类同一个地方

 

<?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 package = "com.hibernate.vo">
	<class name = "Student" table = "student_sh">
		<!-- type属性和column属性都可以不写 -->
		<!-- type属性表示属性类型,不写会自动扫描。column属性映射到表中的列名,不写则自动补充为属性名 -->
		<id name = "studentId" type = "java.lang.Integer" column = "ID">
			<generator class="increment"></generator>
		</id>
			<property name="studentName" type="java.lang.String" column="name"></property>
			<property name="homeAddress" type="java.lang.String" column="home"></property>
			<property name="schoolAddress" type="java.lang.String" column="school"></property>
			<property name="age" type="java.lang.Integer" column="age"></property>
	</class>
</hibernate-mapping>

5) 写一个Hiberante的核心配置文件

必须使用 hibernate.cfg.xml作为主配置文件名,放在src目录下。

             导入约束(如果没有可复制的,需要与你导入的 jar包的版本一致)

找到 hibernate的核心包,我这里是hibernate3.jar。打开,找到dtd文件

选择hibernate-configuration-3.0.dtd,打开即可找到约束

             根据自己的数据库类型配置用于连接数据库的基本信息包括方言,可选配置可写可不写

                      指定对象映射文件的位置

 

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory> 
      <!-- 配置数据库方言,告诉hibernate将对象的操作转换成底层数据库支持的标准的sql语句 -->
        <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
        <!-- 连接数据库的基本信息,根据自动的数据库类型填写-->
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
        <property name="connection.username">scott</property>
        <property name="connection.password">tiger</property>
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        
        <!-- 可选配置 -->
        <!-- 自动建表 -->
        <property name="hbm2ddl.auto">update</property>
		<!-- 显示Hibernate持久化操作所生成的SQL语句 -->
		<property name="show_sql">true</property>  
		<!-- 将SQL脚本进行格式化后再输出 -->
		<property name="hibernate.format_sql">true</property>
        
        <!-- 配置映射文件的位置 -->
        <mapping resource = "com/hibernate/vo/student.hbm.xml"/>
    </session-factory>
    
</hibernate-configuration>


6) 测试

          具体看测试类代码

 

package com.hibernate.vo;

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

public class StudentHB {
	public static void main(String[] args) {
		//实例化一个 Configuration 调用该方法默认加载 src/hibernate.cfg.xml
		Configuration cfg = new Configuration().configure();
		//生成接口对象
		SessionFactory sf = cfg.buildSessionFactory();
		//从工厂中获取并打开session
		Session session = sf.openSession();
		//开启事务
		Transaction tr = session.beginTransaction();
		
		Student s = new Student(01, "xiao", "jiangxi", "hunan", 24);//创建对象
		Student s2 = new Student(02, "Linda", "beijing", "xiaoxue", 24);
		
		try {
			session.save(s);//保存对象
			session.persist(s2);
			tr.commit();
			System.out.println("success");
		} catch(HibernateException hs) {
			hs.printStackTrace();
			tr.rollback();//出错则回滚,保证事务的原子性
		} finally {
			session.close();//关闭资源
			sf.close();
			System.out.println("over");
		}
	}
}


运行完后,就可以去数据库中查看数据是否成功保存了。运行前记得打开数据库的监听器等服务,如果在主配置文件中没配置自动建表的,需要手动去数据库中建表

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值