bean.xml中的ms sql配置

时间:2012-06-26 11:47:58

标签: java sql-server-2008 struts

我安装了MS SQL Server 2008,我想在带有Struts的Java项目中使用它。 不幸的是我无法用Java配置它。我正在使用MsSql的Windows身份验证。这可能吗?

我的beans.xml文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
  "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
        <!-- S2-Install-Start: INSERT DB SERVER HERE -->
        <property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=MyDatabase" />
        S2-Install-End:
        <property name="username" value="Stefana\Steffi" />
        S2-Install-Start: INSERT DB PASSWORD HERE
        <property name="password" value="" />
        S2-Install-End:
    </bean>

我不知道我应该在用户和密码字段中写什么?当我连接到Ms Sql Server时,我得到以下内容:

Servertype: DatabaseEngine

Servername: Stefana\SQLEXPRESS

Authentication: Windows Authentication

Username:Stefana\Steffi

Password:

3 个答案:

答案 0 :(得分:1)

如果对SQL Server使用jTDS JDBC Driver,则可以使用Windows身份验证。 jTDS驱动程序是免费的,开源的,通常比官方的Microsoft驱动程序更强大。

如果在项目中包含jTDS jar,我相信这个数据源URL应该可以工作:

jdbc:jtds://localhost:1433/MyDatabase;domain=Stefana

因为您在Windows上运行,所以jTDS驱动程序能够使用本机库自动使用您当前的凭据登录。但是,明确指定用户名和密码通常是一个更好的主意,因为这样您的网络应用程序的行为就会有所不同,具体取决于谁启动它。

另请注意,默认情况下,SQL Server 2008可能不会启用TCP连接。除非你打开它,否则你将无法连接Microsoft驱动程序或jTDS。

启用TCP连接:

  • 打开 Sql Server配置管理器(它应该位于“开始”菜单上)
  • 在左侧的树中,导航到 SQL Server网络配置,然后导航到 MSSQLSERVER的协议
  • 您应该在协议列表中看到 TCP / IP
  • 如果其状态为已禁用,请双击它,然后将已启用选项更改为,然后单击确定
  • 您现在需要重新启动SQL Server。导航到 SQL Server服务
  • 右键单击服务列表中的 SQL Server(MSSQLSERVER)
  • 选择重新启动
  • 您现在应该可以从Java Web应用程序连接到SQL Server

答案 1 :(得分:0)

这不是正确的做法。

您拥有该数据库吗?你的配置说“localhost”,所以我假设是的。您应该从SQL Server使用另一个用户名和密码,而不是Windows身份验证。我将为此应用程序创建一个单独的用户。只允许它访问应用程序模式,并授予完成任务所需的最小权限(例如,如果不需要,则不需要DELETE权限;如果不需要,则不能访问SYSTEM表;如果不需要,则不运行存储过程。)

更好的解决方案是使用JNDI数据源,而不是机器上的纯文本密码。

答案 2 :(得分:0)

替换属性:

<property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=MyDatabase" />

有:

<property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=MyDatabase;" />

完成!!!