我们所要了解的是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数据库还是不太熟练。