易网时代-编程资源站
Welcome
微信登录
首页
/
数据库
/
MySQL
/
配Hibernate会遇到的常见问题
配置代码如下:
Oracle sql:
--创建表空间
CREATE
TABLESPACE shiningjade
--指定表空间名
DATAFILE
"D:SHININGJADE.DBF"
--指定表空间文件位置和文件名
SIZE
50M
--初始大小
AUTOEXTEND
ON
--自增开关
NEXT
50M
--自增大小
MAXSIZE UNLIMITED;
--限制大小
COMMIT
;
--创建用户指定默认表空间
CREATE
USER
sj IDENTIFIED
BY
123456
--创建用户名并指定密码
DEFAULT
TABLESPACE shiningjade
--用户的默认表空间
TEMPORARY
TABLESPACE
TEMP
;
--临时表空间
COMMIT
;
--用户授权
GRANT
DBA,
CONNECT
,
CREATE
SESSION,
CREATE
SEQUENCE
,
CREATE
PROCEDURE
,
EXECUTE
ANY
PROCEDURE
,
CREATE
TABLE
TO
sj;
COMMIT
;
--首先创建一个表
CREATE
TABLE
document_type
(
id
INTEGER
CONSTRAINT
document_type_pk
PRIMARY
KEY
NOT
NULL
,
name
VARCHAR2(30)
NOT
NULL
);
COMMIT
;
--然后创建一个序列
CREATE
SEQUENCE
sq_document_type;
COMMIT
;
--为表创建触发器,每次插入前序列自增1
CREATE
TRIGGER
tg_document_type
BEFORE
INSERT
ON
document_type
FOR
EACH ROW
BEGIN
SELECT
sq_document_type.nextval
INTO
:NEW.id
from
dual;
END
tg_document_type;
COMMIT
;
--插入数据测试
INSERT
INTO
document_type(
name
)
values
(
"身份证"
);
INSERT
INTO
document_type(
name
)
values
(
"假证"
);
INSERT
INTO
document_type(
name
)
values
(
"老年证"
);
INSERT
INTO
document_type(
name
)
values
(
"游园证"
);
INSERT
INTO
document_type(
name
)
values
(
"党员证"
);
INSERT
INTO
document_type(
name
)
values
(
"结扎证"
);
COMMIT
;
查询结果
select * from document_type ORDER BY id;
ID NAME
---------- ------------------------------
1 身份证
2 假证
3 老年证
4 游园证
5 党员证
6 结扎证
注:如果在创建触发器时报错提示--NEW 或 OLD 引用不允许在表级触发器中,表示你忘记写FOR EACH ROW 关键字了
Java代码实体类
package
hibernate;
import
java.math.BigDecimal;
public
class
DocumentType
implements
java.io.Serializable {
private
static
final
long
serialVersionUID = -3323030831848684918L;
private
BigDecimal id;
private
String name;
public
DocumentType() {
}
public
DocumentType(BigDecimal id, String name) {
this
.id = id;
this
.name = name;
}
public
BigDecimal getId() {
return
this
.id;
}
public
void
setId(BigDecimal id) {
this
.id = id;
}
public
String getName() {
return
this
.name;
}
public
void
setName(String name) {
this
.name = name;
}
}
实体类的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"
>
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping
package
=
"hibernate"
>
<class
name
=
"DocumentType"
table
=
"DOCUMENT_TYPE"
schema
=
"SJ"
>
<id
name
=
"id"
type
=
"java.math.BigDecimal"
>
<column
name
=
"ID"
precision
=
"38"
scale
=
"0"
/>
<generator
class
=
"assigned"
/>
</id>
<property
name
=
"name"
type
=
"java.lang.String"
>
<column
name
=
"NAME"
length
=
"30"
not-null
=
"true"
/>
</property>
</class>
</hibernate-mapping>
HibernateSessionFactory
package
hibernate;
import
org.hibernate.HibernateException;
import
org.hibernate.Session;
import
org.hibernate.cfg.Configuration;
import
org.hibernate.cfg.AnnotationConfiguration;
public
class
HibernateSessionFactory {
private
static
String CONFIG_FILE_LOCATION =
"/hibernate.cfg.xml"
;
private
static
final
ThreadLocal<Session> threadLocal =
new
ThreadLocal<Session>();
private
static
Configuration configuration =
new
AnnotationConfiguration();
private
static
org.hibernate.SessionFactory sessionFactory;
private
static
String configFile = CONFIG_FILE_LOCATION;
static
{
try
{
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
}
catch
(Exception e) {
System.err
.println(
"%%%% Error Creating SessionFactory %%%%"
);
e.printStackTrace();
}
}
private
HibernateSessionFactory() {
}
public
static
Session getSession()
throws
HibernateException {
Session session = (Session) threadLocal.get();
if
(session ==
null
|| !session.isOpen()) {
if
(sessionFactory ==
null
) {
rebuildSessionFactory();
}
session = (sessionFactory !=
null
) ? sessionFactory.openSession()
:
null
;
threadLocal.set(session);
}
return
session;
}
public
static
void
rebuildSessionFactory() {
try
{
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
}
catch
(Exception e) {
System.err
.println(
"%%%% Error Creating SessionFactory %%%%"
);
e.printStackTrace();
}
}
public
static
void
closeSession()
throws
HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(
null
);
if
(session !=
null
) {
session.close();
}
}
public
static
org.hibernate.SessionFactory getSessionFactory() {
return
sessionFactory;
}
public
static
void
setConfigFile(String configFile) {
HibernateSessionFactory.configFile = configFile;
sessionFactory =
null
;
}
public
static
Configuration getConfiguration() {
return
configuration;
}
}
1
2
3
下一页
Oracle中转义字符总结Oracle 插入多条记录的sql相关资讯 Oracle教程
Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
[Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名:
匿名
字数
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图