当前位置:首页 » 操作系统 » hibernate与oracle数据库

hibernate与oracle数据库

发布时间: 2022-11-03 23:47:09

❶ 如何使用Nhibernate动态连接Oracle数据库

使用配置文件nfig)连接数据库

下面以使用Nhibernate2.2连接Oracle10数据库为例,给出连接配置信息如下:

<configSections>

<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />

</configSections>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">

<session-factory name="NHibernate.Test">

<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>

<property name="nnection_string">User ID=hzga;Password=hzga;Data Source=orcl;Persist Security Info=True;</property>

<property name="show_sql">false</property>

<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>

<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>

<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>

</session-factory>

</hibernate-configuration>

❷ hibernate如何配置oracle数据库中表之间的对应关系

hibernate.cfg.xml中除了数据库配置信息外,像这样
<mapping resource="com/bean/XXX.hbm.xml" />
<mapping resource="com/bean/XXX.hbm.xml" />配置,让hibernate知道去哪儿找那两个表。然后在XXX.hbm.xml中配置<one-to-one name="xxx" class="com.bean.XXX" cascade="all" property-ref="xxx"></one-to-one>这样的就额可以了。。。

❸ 如何配置Hibernate连接oracle12c 的PDB和CDB数据库

1 连接到CDB

和普通实例一样的连接。 指定ORACLE_SID 以后可以使用OS认证,也可以使用密码进行连接。

[oracle@Ora12c /]$ echo $ORACLE_SID
cndba
[oracle@Ora12c /]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Proction onMon Apr 28 11:33:43 2014

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise EditionRelease 12.1.0.1.0 - 64bit Proction
With the Partitioning, OLAP, AdvancedAnalytics and Real Application Testing options

SQL> conn system/oracle
Connected.
SQL>

--查看CDB中可用的service:
SQL> COLUMN name FORMAT A30
SQL> SELECT name,pdb
2 FROM v$services
3 ORDER BY name;

NAME PDB
------------------------------------------------------------
SYS$BACKGROUND CDB$ROOT
SYS$USERS CDB$ROOT
cndba CDB$ROOT
cndbaXDB CDB$ROOT
pcndba2 PCNDBA2
pdbcndba PDBCNDBA

6 rows selected.

--通过lsnrctl 也可以判断:
[oracle@Ora12c /]$ lsnrctl service

LSNRCTL for Linux: Version 12.1.0.1.0 -Proction on 28-APR-2014 11:35:31

Copyright (c) 1991, 2013, Oracle. All rights reserved.

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
Services Summary...
Service "cndba" has 1instance(s).
Instance "cndba", status READY, has 1 handler(s) for thisservice...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
Service "cndbaXDB" has 1instance(s).
Instance "cndba", status READY, has 1 handler(s) for thisservice...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: Ora12c, pid: 10085>
(ADDRESS=(PROTOCOL=tcp)(HOST=Ora12c)(PORT=14696))
Service "pcndba2" has 1instance(s).
Instance "cndba", status READY, has 1 handler(s) for thisservice...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
Service "pdbcndba" has 1instance(s).
Instance "cndba", status READY, has 1 handler(s) for thisservice...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
The command completed successfully
[oracle@Ora12c /]$

通过这些service,就可以远程连接CDB。

--EZCONNECT
C:\Users\Dave>sqlplussystem/[email protected]:1521/cndba

SQL*Plus: Release 11.2.0.1.0 Proction on 星期三 4月 30 11:36:48 2014

Copyright (c) 1982, 2010, Oracle. All rights reserved.

连接到:
Oracle Database 12c Enterprise EditionRelease 12.1.0.1.0 - 64bit Proction
With the Partitioning, OLAP, AdvancedAnalytics and Real Application Testing options

SQL>

--通过TNSNAMES.ORA连接:

在tnsnames.ora 中配置如下:
cndba =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = cndba)
)
)

--连接:
C:\Users\Dave>sqlplussystem/oracle@cndba

SQL*Plus: Release 11.2.0.1.0 Proction on 星期三 4月 30 11:40:01 2014

Copyright (c) 1982, 2010, Oracle. All rights reserved.

连接到:
Oracle Database 12c Enterprise EditionRelease 12.1.0.1.0 - 64bit Proction
With the Partitioning, OLAP, AdvancedAnalytics and Real Application Testing options

SQL>

2 在不同Container database中切换

在12c的架构中,因为有CDB和 PDB的存在,所以会有很多不同的container,所以在连接到不同的container时,就需要进行切换。

--查看当前的container:
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> SELECT SYS_CONTEXT('USERENV','CON_NAME') FROM al;

SYS_CONTEXT('USERENV','CON_NAME')
--------------------------------------------------------------------------------
CDB$ROOT

SQL> set lin 140
SQL> select con_id, dbid,guid, name , open_mode from v$pdbs;

CON_ID DBID GUID NAME OPEN_MODE
---------- ------------------------------------------ ---------- ----------
2 4088301206 PDB$SEED READ ONLY
3 PDBCNDBA READ WRITE
4 1231796139 PCNDBA2 READ WRITE

--切换container:
SQL> alter session setcontainer=pcndba2;
Session altered.

SQL> show con_name

CON_NAME
------------------------------
PCNDBA2

3 连接到PDB

--EZCONNECT:

C:\Users\Dave>sqlplussystem/[email protected]:1521/pcndba2

SQL*Plus: Release 11.2.0.1.0 Proction on 星期三 4月 30 11:54:30 2014

Copyright (c) 1982, 2010, Oracle. All rights reserved.

连接到:
Oracle Database 12c Enterprise EditionRelease 12.1.0.1.0 - 64bit Proction
With the Partitioning, OLAP, AdvancedAnalytics and Real Application Testing options

SQL>

--TNSNAMES.ora

在tnsnames.ora 中添加如下内容:
pcndba =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pcndba2)
)
)

C:\Users\Dave>sqlplussystem/oracle@pcndba

SQL*Plus: Release 11.2.0.1.0 Proction on 星期三 4月 30 11:55:50 2014

Copyright (c) 1982, 2010, Oracle. All rights reserved.

连接到:
Oracle Database 12c Enterprise EditionRelease 12.1.0.1.0 - 64bit Proction
With the Partitioning, OLAP, AdvancedAnalytics and Real Application Testing options

SQL>

❹ hibernate连接Oracle数据库出现问题

可能性1:没有导入Oracle驱动jar包,classpath里加入
可能性2:Hibernate-config文件配置数据库驱动有问题

❺ hibernate配置oracle数据库该怎么写

1
既然你要链接oracle数据库 ,那么首先就是先打开我们的oracle数据库了(登陆oracle后用scoot用户登录)

2
第二步,就是打开我们的MyEclipse开发工具

3
在MyEclipse中新建一个web项目

4
在我们MyEclipse右上角中选择MyEclopse Database Explorer随后在我们的Database Explorer中的空白处右击新建

5
在弹出的窗体中按照图中提示选择(这一步注意的是Add JARS 必须要选择的是oracle数据环境下的ojdbc6.jar包)

6
点击下一步之后按照图中选项选择

7
选择scoot用户后点击下一步

8
最后点击结束!完成

9
双击我们的scoot可以看到我们的表空间

10
返回到我们的MyEclipse界面,在web项目上右击→MyEclipse→add hibernate Annotations弹出如下框,随后按照图中选项选择

11
选择我们的src文件夹

12
数据连接选择scoot用户(如下图)

13
创建一个新的包

14
完成我们的配置文件

15
在我们的MyEclopse Database Explore中的scoot表空间的选择一个表然后右击选择hibernate Reverse Engineering

16
新建一个包为bboy2

17
将我们的 Id Generator 选为 increment

18
弹出的提示框选择NO

19
这样我们的MyEclipse部署hibernate配置文件和链接数据库就完成了

❻ hibernate连接oracle数据库时,用increment是什么 意思在一个项目看见这种写法,不明白什么意思。

increment是hibernate中主键的生成策略的一种方式。它由Hibernate从数据库中取出主键的最大值(每个session只取1次),以该值为基础,每次增量为1,在内存中生成主键,不依赖于底层的数据库,因此可以跨数据库。虽然支持跨数据库,但它不适合多进程并发更新数据库,适合单一进程访问数据库,不能用于群集环境。

❼ hibernate怎么连接oracle数据库连接

1
先来创建一个实体类:

2
接着看一下hibernate的简单配置和映射

3
这一步重要,我们要创建sessionfactory了

4
开始测试,写个main方法,看图

5
运行一下,我们look一下结果

6
与数据库表对比一下,ok

❽ 如何使用Nhibernate动态连接Oracle数据库

一、使用配置文件nfig)连接数据库
下面以使用Nhibernate2.2连接Oracle10数据库为例,给出连接配置信息如下:
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
<property name="nnection_string">User ID=hzga;Password=hzga;Data Source=orcl;Persist Security Info=True;</property>
<property name="show_sql">false</property>
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
</session-factory>
</hibernate-configuration>
二、通过提供一个IDictionary实例连接数据库
下面还是以使用Nhibernate2.2连接Oracle10数据库为例,给出连接配置信息如下:
cfg = new Configuration();
IDictionary<string, string> connProps = new Dictionary<string, string>();
connProps.Add("connection.driver_class", "NHibernate.Driver.OracleClientDriver");
connProps.Add("nnection_string", "User ID=hzga;Password=hzga;Data Source=orcl;Persist Security Info=True;");
connProps.Add("query.substitutions", "true 1, false 0, yes 'Y', no 'N'");
connProps.Add("dialect", "NHibernate.Dialect.Oracle10gDialect");
connProps.Add("proxyfactory.factory_class", "NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu");
cfg.SetProperties(connProps);
cfg.AddAssembly(AssemblyName);
sessions = cfg.BuildSessionFactory();
三、如何使用Nhibernate动态直接连接Oracle数据库
上述两种方式都可以成功连接到Oracle数据库,但是前提条件是运行程序时需要安装Oracle客户端。在程序发布部署的时候安装Oracle客户端是一件非常麻烦的事件,那么有没有一种比较好的方法可以直接连接Oracle数据库,同时又不必安装Oracle客户端呢。
答案是肯定的,下面提供两种方式直接连接Oracle数据库:
1、通过OleDB和Oracle公司的驱动
cfg = new Configuration();
IDictionary<string, string> connProps = new Dictionary<string, string>();
connProps.Add("connection.driver_class", "NHibernate.Driver.OleDbDriver");
connProps.Add("nnection_string", "Provider=OraOLEDB.Oracle.1;User ID=hzga;Password=hzga;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.13.148)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))");
connProps.Add("query.substitutions", "true 1, false 0, yes 'Y', no 'N'");
connProps.Add("dialect", "NHibernate.Dialect.Oracle10gDialect");
connProps.Add("proxyfactory.factory_class", "NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu");
cfg.SetProperties(connProps);
cfg.AddAssembly(AssemblyName);
sessions = cfg.BuildSessionFactory();
2、通过OLEDB和微软公司的Oracle驱动
cfg = new Configuration();
IDictionary<string, string> connProps = new Dictionary<string, string>();
connProps.Add("connection.driver_class", "NHibernate.Driver.OleDbDriver");
connProps.Add("nnection_string", " Provider=MSDAORA.1;User ID=lportal;Password=lportal;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = zhbrserver)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))");
connProps.Add("query.substitutions", "true 1, false 0, yes 'Y', no 'N'");
connProps.Add("dialect", "NHibernate.Dialect.Oracle10gDialect");
connProps.Add("proxyfactory.factory_class", "NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu");
cfg.SetProperties(connProps);
cfg.AddAssembly(AssemblyName);
sessions = cfg.BuildSessionFactory();

❾ hibernate连接oracle 插入数据库是问号怎么解决

hibernate连接oracle 插入数据库是问号的解决办法:
在我的电脑上右键属性--高级系统设置--高级--环境变量,新建用户变量:
变量名:
变量值:
LANG=zh_CN.GBK
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

热点内容
C语言a35a4a5 发布:2025-05-14 11:53:48 浏览:812
android隐藏item 发布:2025-05-14 11:43:56 浏览:327
javawebeclipse编译 发布:2025-05-14 11:35:24 浏览:937
可编程控制器试题 发布:2025-05-14 11:25:32 浏览:121
dsp混合编程 发布:2025-05-14 11:23:10 浏览:250
mysql添加存储过程 发布:2025-05-14 11:23:01 浏览:882
房车旅游自媒体有脚本吗 发布:2025-05-14 11:18:18 浏览:127
android输入法键盘 发布:2025-05-14 11:15:48 浏览:660
谷歌商店安卓手机在哪里 发布:2025-05-14 11:13:46 浏览:537
编程猫销售女 发布:2025-05-14 11:13:36 浏览:337