JBoss 7/WildFly中配置使用Oracle數據庫

轉載地址:http://blog.csdn.net/kylinsoong/article/details/12340101

內容概要

JBoss 系列五主要目的是演示如何在JBoss 7/WildFly中配置使用Oracle數據庫,主要分兩大部分Oracle數據庫相關的配置,一個使用Oracle數據庫的HelloWorld小程序。如下爲一簡單示意圖:

Hello World App部署於JBoss上,Hello World App通過JPA/Hibernate操作數據庫,數據庫連接是通過JCA/Datasource維護。

我們需要下載,編譯生成Hello World App,具體根據系列一中相關步驟,下載,編譯:

  1. git clone [email protected]:kylinsoong/csdn.git   
  2. cd csdn/5  
  3. mvn clean install  
git clone [email protected]:kylinsoong/csdn.git 
cd csdn/5
mvn clean install

如上執行完成會生成jpa-helloworld.war,位於target目錄下,我們需要將它部署到JBoss。

Oracle數據庫相關的配置

本部分我們分三塊:JBoss 端配置,Oracle數據庫端的配置,應用端配置

JBoss 端配置

1. 添加Oracle數據庫驅動模塊到JBoss

在JBOSS_HOME/modules/目錄下創建com/oracle/main目錄,將Oracle驅動jari(ojdbc6.jar)拷貝到此目錄下,並同在此目錄下創建module.xml文件,添加內容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <module xmlns="urn:jboss:module:1.1" name="com.oracle">  
  3.     <resources>  
  4.         <resource-root path="ojdbc6.jar"/>  
  5.     </resources>  
  6.     <dependencies>  
  7.         <module name="javax.api"/>  
  8.         <module name="javax.transaction.api"/>  
  9.     </dependencies>  
  10. </module>  
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.oracle">
    <resources>
        <resource-root path="ojdbc6.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

2 添加驅動配置到JBoss服務器配置文件

編輯JBOSS_HOME/standalone/configuration/standalone.xml文件,在<subsystem xmlns="urn:jboss:domain:datasources處datasources,drivers中添加如下內容:

  1. <driver name="oracle" module="com.oracle">  
  2.     <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>  
  3. </driver>  
<driver name="oracle" module="com.oracle">
    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>

Oracle數據庫端的配置

使用DBA用戶連接到Oracle數據庫控制檯,創建demo_user/soong,並分配相應的權限,如下:

  1. sqlplus / as sysdba  
  2. create tablespace TESTSPACE datafile '/oracle/oradata/TESTSPACE.DBF' size 100M  
  3. create user demo_user identified by soong default tablespace TESTSPACE;  
  4. grant connect,resource,dba to demo_user;  
sqlplus / as sysdba
create tablespace TESTSPACE datafile '/oracle/oradata/TESTSPACE.DBF' size 100M
create user demo_user identified by soong default tablespace TESTSPACE;
grant connect,resource,dba to demo_user;

應用端配置

1. 配置datasource

編輯csdn/5/src/main/resources/JPADemo-ds.xml,修改datasource內容如下所示:

  1. <datasource jndi-name="java:jboss/datasources/JPADemoDS" pool-name="JPADemoPool">  
  2.       <connection-url>jdbc:oracle:thin:@10.66.192.144:1521:JBOSS</connection-url>  
  3.       <driver>oracle</driver>  
  4.       <security>  
  5.          <user-name>demo_user</user-name>  
  6.          <password>soong</password>  
  7.       </security>  
  8. </datasource>  
<datasource jndi-name="java:jboss/datasources/JPADemoDS" pool-name="JPADemoPool">
      <connection-url>jdbc:oracle:thin:@10.66.192.144:1521:JBOSS</connection-url>
      <driver>oracle</driver>
      <security>
         <user-name>demo_user</user-name>
         <password>soong</password>
      </security>
</datasource>

注意:我們也可以將此配置添加到JBOSS_HOME/standalone/configuration/standalone.xml,具體添加到<subsystem xmlns="urn:jboss:domain:datasources:1.1">的<datasources>屬性中。

2. 配置persistence-unit

編輯csdn/5/src/main/resources/META-INF/persistence.xml,添加persistence-unit內容如下所示:

  1. <persistence-unit name="primary">  
  2.       <jta-data-source>java:jboss/datasources/JPADemoDS</jta-data-source>  
  3.       <shared-cache-mode>ALL</shared-cache-mode>  
  4.       <properties>  
  5.          <property name="hibernate.hbm2ddl.auto" value="create-drop" />  
  6.          <property name="hibernate.show_sql" value="true" />  
  7.          <property name="hibernate.cache.use_second_level_cache" value="true" />  
  8.          <property name="hibernate.cache.use_query_cache" value="true" />  
  9.       </properties>  
  10. </persistence-unit>  
<persistence-unit name="primary">
      <jta-data-source>java:jboss/datasources/JPADemoDS</jta-data-source>
      <shared-cache-mode>ALL</shared-cache-mode>
      <properties>
         <property name="hibernate.hbm2ddl.auto" value="create-drop" />
         <property name="hibernate.show_sql" value="true" />
         <property name="hibernate.cache.use_second_level_cache" value="true" />
         <property name="hibernate.cache.use_query_cache" value="true" />
      </properties>
</persistence-unit>

運行HelloWorld程序

1. 部署jpa-helloworld.war到JBoss(參照使用4種方式部署應用到JBoss7/WildFly)。

2. 啓動JBoss

  1. [kylin@localhost bin]$ ./standalone.sh  
[kylin@localhost bin]$ ./standalone.sh

3. 使用http://localhost:8080/jpa-helloworld/訪問,會有如下界面

點擊Submit會執行數據庫查詢。

點擊Add a new user會執行插入數據庫操作。

點擊List All Users會列出數據庫中所有用戶。

4. 結果分析

依次執行上述操作,JBoss後臺日誌會有如下SQL語句:

  1. 12:01:14,482 INFO  [stdout] (http-/127.0.0.1:8080-1) Hibernate: select user0_.id as id0_, user0_.firstName as firstName0_, user0_.lastName as lastName0_, user0_.username as username0_ from USERS user0_ where user0_.username=? limit ?  
  2. 12:01:31,284 INFO  [stdout] (http-/127.0.0.1:8080-1) Hibernate: call next value for hibernate_sequence  
  3. 12:01:31,295 INFO  [stdout] (http-/127.0.0.1:8080-1) Hibernate: insert into USERS (firstName, lastName, username, id) values (?, ?, ?, ?)  
  4. 12:01:45,775 INFO  [stdout] (http-/127.0.0.1:8080-1) Hibernate: select user0_.id as id0_, user0_.firstName as firstName0_, user0_.lastName as lastName0_, user0_.username as username0_ from USERS user0_  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章