當前位置:首頁 » 操作系統 » 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

熱點內容
python文件刪除一行 發布:2025-05-14 08:06:58 瀏覽:721
如何下載奧特曼高級化3安卓版 發布:2025-05-14 07:47:31 瀏覽:346
qml文件修改後編譯未生效 發布:2025-05-14 07:31:00 瀏覽:331
內到內演算法 發布:2025-05-14 07:29:11 瀏覽:34
文件夾名字不顯示 發布:2025-05-14 07:27:47 瀏覽:775
oracle的資料庫驅動jar 發布:2025-05-14 07:23:20 瀏覽:556
我的世界電腦版伺服器手機版能進嗎 發布:2025-05-14 07:22:01 瀏覽:680
達內培訓php多少錢 發布:2025-05-14 07:19:10 瀏覽:27
python位元組轉字元串 發布:2025-05-14 07:06:35 瀏覽:423
subplotpython 發布:2025-05-14 06:53:51 瀏覽:662