[英]How to set oracle db connection timeout in spring Boot application
[英]How to set default schema in a Spring/mybatis application with Oracle DB?
來自mysql背景,我能夠在連接url中設置我想用於所有sql查詢的默認模式名稱。 我現在有一個我需要訪問的Oracle數據庫。 我知道我無法指定我想在URL中使用的模式,因為用戶是正在使用的模式名稱。
我意識到我可以使用一行SQL代碼:
ALTER SESSION SET CURRENT_SCHEMA=default_schema
該項目使用mybatis 2.3.5作為我的SQL框架,但我對mybatis完全不熟悉。 有沒有一種簡單的方法來配置mybatis來實現這一目標? 我的應用程序是Spring 3應用程序,因此我使用Spring DataSourceTransactionManager來管理我的事務。 我認為必須讓管理員了解這一要求,以確保在創建新連接時發送命令。
我嘗試過在線搜索,但我發現的大多數示例都在SqlMaps中的sql查詢中包含了模式名稱,我認為這是不好的做法。
在理想的世界中,模式名稱將是URL的一部分,以便我可以更改不同環境的模式名稱(例如:dev,test,prod等),而無需觸及代碼(即:僅在JNDI上配置) /應用程序服務器級別)。 如果我可以使用Spring配置值來設置它,我仍然會很高興我仍然可以使用JNDI查找或系統環境屬性來檢索值。
誰能指出我正確的方向?
謝謝,
埃里克
據我所知,Oracle中沒有選項可以更改您的URL以連接到特定的用戶架構。
1)mybatis:您可以在開始操作之前將當前架構設置為應得的架構。 您可以在屬性文件中編寫規范,並從該文件設置方法的參數。 在這種情況下,您無需更改代碼即可更改架構。
<update id="mySetSchemaMethod" parameterClass="String">
ALTER SESSION SET CURRENT_SCHEMA = ${schemaName}
</update>
2)觸發器:如果僅對此特定Java應用程序使用此連接,則可以設置客戶端事件觸發器,以便設置CURRENT_SCHEMA。 這次,您需要更改觸發器以管理測試/產品更改。
CREATE OR REPLACE TRIGGER Set_Schema_On_Logon
AFTER LOGON
ON MY_SCHEMA
BEGIN
ALTER SESSION SET CURRENT_SCHEMA = MY_TEST_SCHEMA;
END;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.