2012-08-18 109 views
0

如何配置persistence.xml文件以連接到我的SQL Server。一些信息連接爲:主機,數據庫名稱,用戶名,密碼,端口,...如何爲SQL服務器配置persistence.xml

+0

您正在使用哪個應用程序服務器?你用春天嗎?或者純JEE5託管bean JEE6?你想使用hibernate native還是JPA?請提供更多關於您的技術堆棧的信息;)。 – Heidarzadeh 2012-08-18 06:43:34

+0

我開發基於JSF2的Web,Web服務器是glasshfish和JEE6。 – 2012-08-18 08:15:26

+0

請不要使用'[jsf]'標籤來處理與JSF完全無關的問題。只有當您遇到JSF視圖(Facelets/XHTML文件)的問題或將其鏈接到JSF managedbean和/或理解JSF生命週期時,您纔會遇到JSF問題。但配置JPA與JSF無關。使用SpringMVC/Struts/Wicket /等任何其他MVC框架時,您會遇到同樣的問題。這不是我第一次從你的問題中刪除'[jsf]'標籤,請注意這一點。 – BalusC 2012-08-20 12:08:18

回答

0

使用配置.xml文件設置連接池到MySQL數據庫對於像你這樣剛剛開始的人來說可能會非常麻煩。

在我看來,你應該看看這個short guide。您只需啓動Glassfish服務器,打開瀏覽器並瀏覽至http://yourdomain.com:4848即可訪問管理面板。之後,只需按照該文章中的說明操作即可創建JDBC Connection poolJDBC Resource。此時,您只需要用IDE(NetBeans等)打開persistence.xml文件,然後將Data Source屬性設置爲JDBC Resource的名稱即可完成。

有一點要注意的是,你必須下載最新MySQL Connector/J和複製文件

mysql-connector-java-<version>-bin.jar 

到該文件夾​​

<GlassFish-install-folder>\glassfish\domains\domain1\lib\ext 

否則,你會碰到expcetion Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource,如果你嘗試在創建JDBC Connection pool之後ping數據庫。

+0

謝謝大家,我自己解決了問題。 – 2012-08-19 06:53:42

+0

「SQL Server」與「MySQL」不一樣。 – BalusC 2012-08-20 12:10:18

0

首先donwload jdbc驅動程序的sqlserver,並把它放在glassfish lib目錄並啓動。 使用GlassFish管理控制檯:

  1. 定義一個JDBC連接池,並指定主機,數據庫名, 用戶名,密碼,端口...
  2. 定義你指定一個JDBC資源,然後選擇連接池的名字第1步
  3. 然後抓住JDBC資源的名稱,並把它放在你的persistence.xml文件:<jta-data-source>YOUR-JDBC-RESOURCE-NAME</jta-data-source>

,現在你可以連接到數據庫。

如果您使用的是Netbeans,它有一些很好的嚮導可以在glassfish中生成連接池和jdbc資源。

由於您使用JEE6這是使用註釋另一種方式:

import javax.annotation.sql.DataSourceDefinition; 

@DataSourceDefinition(name = "java:app/env/myDatasource", 
     minPoolSize = 0, 
     initialPoolSize = 0, 
     className = "your.driver.class", 
     serverName="localhost", 
     user = "admin", 
     password = "admin", 
     databaseName = "test" 
) 

public class DbConfiguration { 
} 

欲瞭解更多信息看一看here

+0

我完成了你給這個鏈接的步驟。我班'@DataSourceDefinition(NAME = 「myDatasource」, \t \t了MinPoolSize = 0, \t \t initialPoolSize = 0, \t \t的className = 「com.microsoft.sqlserver.jdbc.SQLServerDataSource」, \t \t SERVERNAME =「本地主機」, \t \t用戶= 「xoso」, \t \t密碼= 「xoso〜123」, \t \t的databaseName = 「XoSoDB」 )'。當我回顧數據顯示錯誤'異常,而準備應用程序:無效資源:myDatasource__pm com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:無效的資源:myDatasource__pm在......' – 2012-08-18 11:40:09

+0

你是否把你的數據源放在持久性。 xml' java:app/env/myDatasource' – Heidarzadeh 2012-08-18 12:30:56

+0

當你想使用'@PersistenceContext'指定unitName時。 '@PersistenceContext(unitName =「YourUnitName」)' – Heidarzadeh 2012-08-18 12:32:36