2013-06-20 113 views
0

我正在通过JDBC4.0访问SQL Server 2008数据库。问题是我可以访问我的数据库只是当我的glassfish服务器重新启动时,它通常运行代码,但一次,如果我对代码进行任何更改,我必须重新启动glassfish服务器,否则会生成以下错误。JDBC和Sql Server 2008连接性

警告:无法加载sqljdbc_auth.dll原因:本地库C:\ WINDOWS \ SYSTEM32 \ sqljdbc_auth.dll已装入另一个类加载器

请指导我该怎么做才能解决这个问题我正在使用Eclipse编辑器的问题。并且我的代码是

String url = "jdbc:sqlserver://localhost;databaseName=ProductDB; integratedSecurity=true;"; 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 
     con = DriverManager.getConnection(url); 
     System.out.println("Connected"); 
+1

这是一个警告不是错误。 –

+0

是的,但我不能访问数据库表和其他数据 – wixxey

+0

那么你需要更新你的问题,因为你在问题中陈述了“我可以访问我的数据库”。 –

回答

0

如果您在xml或.java文件中做任何更改,您必须重新启动。

如果您使用可重新加载的资源束来读取属性文件,那么就可以了。

更新: 只需进入顶部栏中的项目,而不是勾选“自动构建”。它将停止自动构建项目并节省您的宝贵时间。

+0

thanx suleo,每次我做出更改我必须重新启动glassfish .. 。有没有更好的解决方案,因为这太忙碌 – wixxey

+0

请告诉我,你使用任何IDE进行开发? – sunleo

+0

我使用eclipse juno – wixxey

1

如果在GlassFish中正确定义数据源,你应该能够简单地重新部署应用程序才能看到更改.java文件(你甚至可以用热部署,虽然我与经验已经不到大)。 XML文件甚至不需要重新部署。

更新:我从编辑中看到你正在手动加载驱动程序等。我建议你让GlassFish管理数据源并使用资源注入来获取连接。

编辑:正确地重新读取您的问题......如果您使用的是sql认证,则不需要sqljdbc_quth.dll库,但它会加速对sql server的认证。我尝试了我们的产品之一,但它没有造成任何明显的差异,所以我从来没有打扰过。

+0

但是如果我不使用这个dll,我的db数据没有加载 – wixxey

+0

ru建议使用spring framework – wixxey

+0

如果你使用windows集成安全性进行身份验证,你确实需要'sqljdbc_auth.dll' –