今天分享一下 hibernate 连接Oracle的一下配置
1.Oracle的自动增长需要单独创建索引
例如:
CREATE SEQUENCE MYSEQ MINVALUE 1 START WITH 1 NOMAXVALUE INCREMENT BY 1 NOCYCLE CACHE 30
|
2.配置 .hbm.xml 先在 Oracle中添加序列
代码如下:
create sequence seq_value
Start with 1
Increment by 1;
.hbm.xml 配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.xw.easybuy.product.vo">
<class name="Product" table="easybuy_product">
<id name="eyb_Pid" type="integer">
<generator class="sequence">
<param name="sequence">seq_value </param><!-- 此处seq_value 需要和Oracle中的索引 sql_value相对应 --!>
</generator>
</id>
<!-- 可以忽略
<property name="eyb_pname"/>
<property name="eyb_price"/>
<property name="eyb_image"/>
<property name="eyb_desc"/>
<property name="eyb_is_hot"/>
<property name="eyb_stock"/>
--!>
</class>
</hibernate-mapping>
3.hibernate.cfg.xml的配置
//方言
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</property>
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />
<property name="jdbcUrl" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
<property name="user" value="scott" />
<property name="password" value="tiger"/>
4.Oracle中添加数据代码:
insert into EASYBUY_CATEGORY values (seq_value.nextval,'首页');
//seq_value.nextval :是自动增长列
5.hibernate 中添加数据:
和其他数据库差不多
Student stu = new Student();
//通过Student的setter方法改变它的属性
//注意student_id不用我们设置
stu.setStudent_name("zhangsan");
stu.setStudent_age(18);
//通过session的save()方法将Student对象保存到数据库中
session.save(stu);