初识ORM
orm环境搭建:首先需要一个高版本的myeclipse,然后导入hibrinate所需的jar包以及数据库驱动包,在开发过程中需要在myeclipse中配置1.8版本jdk。在配置hibernate.cfg.xml文件和Customer.hbm.xml文件。
第一个demo创建过程:
创建Oracle数据库:
-- Create table
create table CUSTOMER
(
ID NUMBER not null,
USERNAME VARCHAR2(100),
AGE NUMBER,
SEX VARCHAR2(100),
CITY VARCHAR2(100)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
minextents 1
maxextents unlimited
);

首先创建一个java工程:hibernateDemo1 创建package:com.lidongyu
创建类Customer:
package com.lidongyu;
public class Customer {
private int id;
private String username;
private int age;
private String sex;
private String city;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@Override
public String toString() {
return "Customer [id=" + id + ", username=" + username + ", age=" + age
+ ", sex=" + sex + ", city=" + city + "]";
}
}
配置hibernate.cfg.xml文件:
<?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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="hibernate.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">scott</property>
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
<mapping resource="com/lidongyu/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
配置Customer.hbm.xml文件:
<?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>
<class name="com.neusoft.com.Customer" table="Student">
<id name="id" column="id" >
<generator class="native"/>
</id>
<property name="username" column="username" type="string" />
<property name="age" column="age" type="int" />
<property name="sex" column="sex" type="string" />
<property name="city" column="city" type="string" />
</class>
</hibernate-mapping>
创建测试类:TestDemo:
package com.lidongyu;
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 sss() {
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工作原理:
1.Configuration cig = new Configuration().configure();读取并解析配置文件
2.SessionFactory sessionFactory = cig.buildSessionFactory();创建sessionFactory
3.Session session = sessionFactory.openSession();//得到session4.Transaction t = session.beginTransaction();//开启事务
5.Customer c = (Customer) session.get(Customer.class, 1);//操作
System.out.println(c.toString());
6.t.commit();//提交事物
7.session.close();//关闭资源
sessionFactory.close();
问题总结:在搭建orm环境过程中,jdk版本不够,后来使用了老师发送的1.8jdk版本,在连接数据库的过程中出现了一个问题查找了两个小时,最后是因为在数据库建表的时候把int型的id输入了sss,字段不匹配,最后在同学的帮助下得到了解决,一个没有注意到的小问题耽误了好多时间。
总结:在orm环境搭建过程中要注意jdk版本问题,需要1.8jdk,数据类型的字段一定要匹配。在测试类导包的时候也要防止导错。