Hibernate框架基本应用

本文介绍ORM的概念及其在Java中的应用,详细演示了如何使用Hibernate框架搭建环境并实现一个简单的示例程序,包括数据库连接配置、Pojo对象创建及.hbm.xml文件配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们所要了解的是ORM的使用,所以我们需要了解一下ORM的环境构建以及一个基本的Demo的实现。

首先我们需要了解一下ORM的原理,所谓的ORM就是利用描述对象和数据库表之间映射的元数据,自动把Java应用程序中的对象,持久化到关系型数据库的表中。通过操作Java对象,就可以完成对数据库表的操作。

然后我们要了解一下ORM的环境构建:首先需要一个软件开发工具,eclipse/myeclipse都可以,在开发工具中要有一个jdk1.8的开发环境,然后需要一些有关Hibernate相关的Jar包进行程序驱动,还需要一个数据库(MYSQL或ORACLE,我所用的是MYSQL数据库)以便我们进行数据访问,而在程序编写时不仅需要一个实例化的具体类,还需要一个与该实体类所契合的*.hbm.xml文件.

最后是一个我们ORM实现的一个基本的Demo:

第一步创建数据库:

第二步建立一个Hibernate项目工程,配置Hibernate的session factory工厂:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
        <property name="dataSource"> 
            <ref local="dataSource"/> 
        </property> 
        <property name="mappingResources"> 
            <list> 
                <value>com/zrrd/lgx/pojo/house.hbm.xml</value> 
            </list> 
        </property> 
        <property name="hibernateProperties"> 
            <props> 
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
                <prop key="hibernate.show_sql">true</prop> 
                <prop key="hibernate.jdbc.batch_size">20</prop>     
                <prop key="hibernate.hbm2ddl.auto">update</prop>     
            </props> 
        </property> 
    </bean>

第三步配置连接数据库所需要的数据源:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
        <property name="driverClassName"> 
            <value>com.mysql.jdbc.Driver</value> 
        </property> 
        <property name="url"> 
            <value>jdbc:mysql://localhost:3306/house</value> 
        </property> 
        <property name="username"> 
            <value>root</value> 
        </property> 
        <property name="password"> 
            <value>123456</value> 
        </property> 
    </bean>

第四步创建Pojo实例化对象:

public class house {
	private int HID;
	private String NAME;
	private String TYPE;
	private String FLOOR;
	private String AREA;
	private String LOC;
	private String PAY;
	private Date DATE;
	private String PRICE;
	private String NOTE;
	public int getHID() {
		return HID;
	}
	public void setHID(int hID) {
		HID = hID;
	}
	public String getNAME() {
		return NAME;
	}
	public void setNAME(String nAME) {
		NAME = nAME;
	}
	public String getTYPE() {
		return TYPE;
	}
	public void setTYPE(String tYPE) {
		TYPE = tYPE;
	}
	public String getFLOOR() {
		return FLOOR;
	}
	public void setFLOOR(String fLOOR) {
		FLOOR = fLOOR;
	}
	public String getAREA() {
		return AREA;
	}
	public void setAREA(String aREA) {
		AREA = aREA;
	}
	public String getLOC() {
		return LOC;
	}
	public void setLOC(String lOC) {
		LOC = lOC;
	}
	public String getPAY() {
		return PAY;
	}
	public void setPAY(String pAY) {
		PAY = pAY;
	}
	public Date getDATE() {
		return DATE;
	}
	public void setDATE(Date dATE) {
		DATE = dATE;
	}
	public String getPRICE() {
		return PRICE;
	}
	public void setPRICE(String pRICE) {
		PRICE = pRICE;
	}
	public String getNOTE() {
		return NOTE;
	}
	public void setNOTE(String nOTE) {
		NOTE = nOTE;
	}	
}

第五步配置实例化相应的.hbm.xml文件:

<!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.zrrd.lgx.pojo.house" table="house">
    	<id name="HID" column="HID" type="java.lang.Integer">
            <!-- native Assigned  increment  identity uuid.hex  uuid.string foreign -->
            <generator class="native" />
		</id>
		<property name="NAME" column="name"  />
    	<property name="TYPE" column="TYPE" />
    	<property name="FLOOR" column="FLOOR"  />
    	<property name="AREA" column="AREA"  />
    	<property name="LOC" column="LOC"  />
    	<property name="PAY" column="PAY"  />
    	<property name="DATE" column="DATE" type="java.util.Date" />
    	<property name="PRICE" column="PRICE"  />
    	<property name="NOTE" column="NOTE"  />
    </class>
</hibernate-mapping>

第六步测试类实现:

package com.zrrd.lgx;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
public class TestDemo {
	@Test
		public  void HouseImpl() {
			Configuration  cig = new Configuration().configure();
			SessionFactory sessionFactory = cig.buildSessionFactory();
			Session session = sessionFactory.openSession();
			Transaction t = session.beginTransaction();
			Customer c = (Customer) session.get(Customer.class, 1);	
			System.out.println(c.toString());
			t.commit();
			session.close();
			sessionFactory.close();
		}
}

运行界面:


对于此次的Hibernate Demo的基本实现,我所遇到的问题就是有关于Java和数据库之间的连接问题,因为不同的数据库与项目之间的连接方式是不一样的,由于我们以前连接的是Oracle数据库,所以第一次使用MySql数据库还是不太熟练。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值