2010-03-16 113 views
42

我在本地PC上安装了MSSQL 2008,我的Java应用程序需要连接到MSSQL数据库。我是MSSQL的新手,我希望为我的Java应用程序创建用户登录并通过JDBC获取连接获得一些帮助。到目前为止,我尝试为我的应用程序创建一个用户登录并使用以下连接字符串,但我根本不工作。任何帮助和暗示将不胜感激。如何使用JDBC连接到SQL Server 2008数据库?

jdbc:jtds:sqlserver://127.0.0.1:1433/dotcms 
username="shuxer" password="itarator" 
+0

请发布您正在尝试连接的代码,同时向我们提供您正在获取的异常或错误 – developer 2011-09-05 10:35:44

+0

尝试使用[Hibernate](https://www.hibernate.org/6.html#A2)。如果你还没有听说过它,那么[看看这个工具]是时候了(http://docs.jboss.org/hibernate/stable/core/reference/en/html/)。广泛传播的对象关系映射(ORM)库。 – Artic 2010-03-16 07:04:37

回答

-8

本示例Java程序使用JDBC连接到MySQL数据库,执行查询并检索并打印数据库字段的值。

此示例代码可用于连接任何类型的数据库,您只需更改连接URL(示例中的dbUrl)即可。为使此代码正常工作,您需要从mysql.com站点下载用于JDBC的mysql驱动程序,换句话说Java连接器。

如果在下载URL后仍然不起作用,那么可能是由于类路径。您必须在类路径中添加驱动程序jar文件。

import java.sql.*; 
import javax.sql.*; 

public class jdbcdemo{ 

public static void main(String args[]){ 
String dbtime; 
String dbUrl = "jdbc:mysql://your.database.domain/yourDBname"; 
String dbClass = "com.mysql.jdbc.Driver"; 
String query = "Select * FROM users"; 

try { 

Class.forName("com.mysql.jdbc.Driver"); 
Connection con = DriverManager.getConnection (dbUrl); 
Statement stmt = con.createStatement(); 
ResultSet rs = stmt.executeQuery(query); 

while (rs.next()) { 
dbtime = rs.getString(1); 
System.out.println(dbtime); 
} //end while 

con.close(); 
} //end try 

catch(ClassNotFoundException e) { 
e.printStackTrace(); 
} 

catch(SQLException e) { 
e.printStackTrace(); 
} 

} //end main 

} //end class 
+1

OP是要求SQL服务器不是我的SQL ... – 2014-02-12 07:26:58

+3

请删除这个答案。 – 2015-04-17 13:27:35

3

尝试使用这样的:JDBC:JTDS:SQLSERVER://127.0.0.1/dotcms;实例=实例名

我不知道你正在使用的MSSQL的版本,如果是Express版本,默认情况下为SQLEXPRESS

不要忘记检查,如果SQL Server Browser服务正在运行。

5

如果您连接时遇到问题,最可能的问题是您尚未在端口1433上启用TCP/IP侦听器。快速的“netstat -an”命令会告诉您它是否正在侦听。默认情况下,SQL Server在安装后不会启用此功能。此外,您需要在“sa”帐户上设置密码,并启用“sa”帐户(如果您打算使用该帐户进行连接)。

很明显,这也意味着您需要在MSSQL节点上启用“混合模式身份验证”。

5

我也使用mssql服务器2008和jtds.In我的情况我使用以下连接字符串,它的工作原理。

Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://<your server ip  
address>:1433/zacmpf", userName, password); 
Statement stmt = con.createStatement(); 
26

您可以使用this

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 

public class ConnectMSSQLServer 
{ 
    public void dbConnect(String db_connect_string, 
      String db_userid, 
      String db_password) 
    { 
     try { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     Connection conn = DriverManager.getConnection(db_connect_string, 
        db_userid, db_password); 
     System.out.println("connected"); 
     Statement statement = conn.createStatement(); 
     String queryString = "select * from sysobjects where type='u'"; 
     ResultSet rs = statement.executeQuery(queryString); 
     while (rs.next()) { 
      System.out.println(rs.getString(1)); 
     } 
     } catch (Exception e) { 
     e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) 
    { 
     ConnectMSSQLServer connServer = new ConnectMSSQLServer(); 
     connServer.dbConnect("jdbc:sqlserver://<hostname>", "<user>", 
       "<password>"); 
    } 
} 
61

主要有两种方式来使用JDBC - 使用Windows身份验证和SQL身份验证。 SQL身份验证可能是最简单的。你可以做的是这样的:

String userName = "username"; 
String password = "password"; 

String url = "jdbc:sqlserver://MYPC\\SQLEXPRESS;databaseName=MYDB"; 

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
Connection conn = DriverManager.getConnection(url, userName, password); 

将sqljdbc4.jar添加到构建路径后。

对于Windows身份验证,你可以这样做:

String url = "jdbc:sqlserver://MYPC\\SQLEXPRESS;databaseName=MYDB;integratedSecurity=true"; 
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
Connection conn = DriverManager.getConnection(url); 

,然后添加到sqljdbc_auth.dll作为VM参数中的路径(仍需要在构建路径sqljdbc4.jar)。

请看看here了解如何使用jTDS和JDBC从Java连接到SQL Server的简要步骤指南,如果您需要更多详细信息。希望能帮助到你!

2

您可以尝试配置SQL Server:

  1. 第1步:打开SQL Server 20XX配置管理器
  2. 步骤2:单击协议为SQL .. SQL Server配置。然后,右键单击TCP/IP,选择属性
  3. 步骤3:单击选项卡IP地址,编辑所有TCP。端口是1433

注:所有TCP端口为1433 最后,重新启动服务器。