如何使用JDBC连接到SQL Server 2008数据库?

时间:2010-03-16 03:11:42

标签: java sql-server sql-server-2008 jdbc

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

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

8 个答案:

答案 0 :(得分:71)

使用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添加到构建路径后

对于Window身份验证,您可以执行以下操作:

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的简短分步指南。希望它有所帮助!

答案 1 :(得分:32)

您可以使用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>");
   }
}

答案 2 :(得分:7)

我也在使用mssql server 2008和jtds.在我的情况下,我使用以下连接字符串,它可以工作。

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();

答案 3 :(得分:6)

如果您在连接时遇到问题,很可能问题是您尚未在端口1433上启用TCP / IP侦听器。快速“netstat -an”命令将告诉您它是否正在侦听。默认情况下,SQL Server在安装后不启用此功能。

此外,您需要在“sa”帐户上设置密码,并启用“sa”帐户(如果您打算使用该帐户进行连接)。

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

答案 4 :(得分:3)

尝试使用如下:jdbc:jtds:sqlserver://127.0.0.1/dotcms;实例=实例名

我不知道你使用的是哪个版本的mssql,如果是快递版,默认实例是sqlexpress

不要忘记检查SQL Server Browser服务是否正在运行。

答案 5 :(得分:3)

您可以尝试配置SQL Server:

  1. 步骤1:打开SQL Server 20xx Configuration Manager
  2. 步骤2:单击SQL Server配置中的SQL协议。然后,右键单击TCP / IP,选择“属性”
  3. 步骤3:单击选项卡IP地址,编辑所有TCP。港口是1433
  4. 注意:所有TCP端口均为1433 最后,重启服务器。

答案 6 :(得分:1)

连接到SQL Server的简单Java程序。

注意:您需要将sqljdbc.jar添加到构建路径中

// localhost:本地计算机充当服务器

// 1433:SQL默认端口号

// username:sa

//密码:使用密码,在安装SQL Server管理工作室时使用,在我的例子中,它是'root'

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

    public class Conn {
        public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {

            Connection conn=null;
            try {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
                conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=company", "sa", "root");

                if(conn!=null)
                    System.out.println("Database Successfully connected");

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

        }
    }

答案 7 :(得分:0)

  

尝试一下。

     

导入java.sql.Connection;

     

导入java.sql.DriverManager;

     

import java.sql.ResultSet;

     

import java.sql.Statement;

     

公共类SQLUtil {

     

public void dbConnect(String db_connect_string,String db_userid,   字符串db_password){

     

尝试{

     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 cpl";
     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){

     

SQLUtil connServer =新的SQLUtil();

     

connServer.dbConnect(“ jdbc:sqlserver://192.168.10.97:1433; databaseName = myDB”,   “ sa”,                  “ 0123”);

     

}

     

}