初学hibernate的一个连接oracle数据库的程序
该实例的目录结构如下:
配置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">
<hibernate-configuration>
<session-factory >
<!-- oracle数据库驱动 -->
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!-- oracle数据库名称 -->
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
<!-- 数据库的登陆用户名 -->
<property name="hibernate.connection.username">tyj</property>
<!-- 数据库的登陆密码 -->
<property name="hibernate.connection.password">123</property>
<!-- 方言:为每一种数据库提供适配器,方便转换 -->
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="show_sql">true</property>
<mapping resource="com/oracleoace/entity/user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
建立User实体类
package com.oracleoace.entity;
/**
* 用户表
* @author Administrator
*
*/
public class User {
private long id;
private String name;
private String password;
public User() { }
public User(long id, String name, String password) {
super();
this.id = id;
this.name = name;
this.password = password;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping package="com.oracleoace.entity">
<class name="User" table="t_user">
<id name="id" column="id" type="long">
<generator class="sequence">
<param name="sequence">t_user_seq</param>
</generator>
</id>
<property name="name" column="name" type="string"/>
<property name="password" column="password" type="string"></property>
</class>
</hibernate-mapping>
create table t_user(
id number(10) primary key,
name varchar2(20) not null,
password varchar2(20) not null
);
create sequence t_user_seq start with 1 increment by 1;
最后写一个测试类向表中添加数据:
package com.oracleoace.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.oracleoace.entity.User;
public class Test {
public static void main(String[] args) {
String name="张三";
String password = "123";
User user = new User();
user.setName(name);
user.setPassword(password);
//创建configuration对象
Configuration config = new Configuration();
//读取配置文件
config.configure("hibernate.cfg.xml");
//创建SessionFactre对象
SessionFactory factory = config.buildSessionFactory();
//创建Session对象
Session session = factory.openSession();
//通过session完成和数据库的CRUD操作
Transaction trans = null;
try {
trans = session.beginTransaction();
//开启事务
session.save(user);
//提交事务
trans.commit();
} catch (Exception e) {
e.printStackTrace();
//回滚事务
trans.rollback();
}finally{
//关闭资源
session.close();
}
}
}
结果
需要导入的包可到hibernate官网下载
总结: 用了Hibernate,代码中不涉及具体的JDBC语句,具体操作中可以大大减少代码量。