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
本部分咱們分三塊:JBoss 端配置,Oracle數據庫端的配置,應用端配置github
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>
編輯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>
使用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>
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>
1. 部署jpa-helloworld.war到JBoss(參照使用4種方式部署應用到JBoss7/WildFly)。
2. 啓動JBoss
[kylin@localhost bin]$ ./standalone.sh
點擊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_