JBoss 系列五:JBoss 7/WildFly中配置使用Oracle數據庫

內容概要

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

Hello World App部署於JBoss上,Hello World App經過JPA/Hibernate操做數據庫,數據庫鏈接是經過JCA/Datasource維護。java

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

git clone git@github.com:kylinsoong/csdn.git 
cd csdn/5
mvn clean install

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

Oracle數據庫相關的配置

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

JBoss 端配置

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

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

<?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中添加以下內容:小程序

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

Oracle數據庫端的配置

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

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內容以下所示:oracle

<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內容以下所示:

<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

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

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

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

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

點擊List All Users會列出數據庫中全部用戶。

4. 結果分析

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

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 ?
12:01:31,284 INFO  [stdout] (http-/127.0.0.1:8080-1) Hibernate: call next value for hibernate_sequence
12:01:31,295 INFO  [stdout] (http-/127.0.0.1:8080-1) Hibernate: insert into USERS (firstName, lastName, username, id) values (?, ?, ?, ?)
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_
相關文章
相關標籤/搜索