2012-08-18 79 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