Como é que me ligo a uma base de dados SQL Server 2008 usando o JDBC?

Tenho o MSSQL 2008 instalado no meu PC local, e a minha aplicação Java precisa de se ligar a uma base de dados MSSQL. Eu sou um novo para o MSSQL e eu gostaria de obter alguma ajuda na criação de login de usuário para a minha aplicação Java e obter conexão através do JDBC. Até agora eu tentei criar um login do Usuário para o meu aplicativo e usado seguindo a cadeia de conexão, mas eu não funciona em tudo. Qualquer ajuda e dica será apreciada.

jdbc:jtds:sqlserver://127.0.0.1:1433/dotcms 
username="shuxer"  password="itarator"
Author: Luiggi Mendoza, 2010-03-16

8 answers

Existem principalmente duas formas de usar o JDBC - usando a autenticação do Windows e a autenticação do SQL. A autenticação SQL é provavelmente a mais fácil. O que podes fazer é algo como:

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

Depois de adicionar sqljdbc4.frasco para o caminho de construção.

Para a autenticação de janelas, poderá fazer algo do género:

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

E depois adicionar o caminho para sqljdbc_auth.dll como um argumento VM (ainda precisa sqljdbc4.jar in the build path).

Por favor, dê uma vista de olhos. guia passo-a-passo que mostra como se ligar ao servidor SQL a partir de Java usando jTDS e JDBC se você precisar de mais detalhes. Espero que ajude!
 67
Author: Thusi, 2016-01-01 20:45:35

Pode usar isto :

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>");
   }
}
 30
Author: Mahmut EFE, 2014-02-12 07:25:57

Se tiver problemas de ligação, provavelmente o problema é que ainda não activou o ouvinte TCP/IP na porta 1433. Um rápido comando "netstat-an" dir-lhe-á se está a ouvir. Por padrão, o servidor SQL não activa isto após a instalação.

Além disso, você precisa definir uma senha na conta "sa" e também ativar a conta "sa" (se você planeja usar essa conta para se conectar com).

Obviamente, isto também significa que precisa de activar a "autenticação em modo misto" no teu nó MSSQL.

 6
Author: djangofan, 2011-08-02 17:27:23

Também estou a usar o MSSQL server 2008 e jtds.In meu caso eu estou usando a seguinte cadeia de conexão e funciona.

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();
 6
Author: kta, 2012-05-27 02:52:15

Tente usar desta forma: jdbc: jtds: sqlserver:/ / 127. 0. 0. 1/dotcms; instance=instanceName

Não sei qual a versão do mssql que está a usar, se for a edição expressa, a instância por omissão é o sqlexpress

Não se esqueça de verificar se o serviço de navegação do servidor SQL está a correr.

 3
Author: , 2010-03-24 21:02:21

Pode tentar configurar o servidor SQL:

  1. Passo 1: abrir o Gestor de configuração do servidor SQL 20xx
  2. Passo 2: Carregue nos protocolos para SQL.. na configuração do servidor SQL. Em seguida, carregue com o botão direito TCP / IP, escolha as Propriedades
  3. Passo 3: Carregue em tab IP Address, Edite todo o TCP. Porto: 1433

Nota: {[13] } toda a porta TCP é 1433 Finalmente, reinicie o servidor.

 3
Author: Nguyễn Anh Giàu, 2017-02-27 06:12:43

Programa Java simples que se liga ao servidor SQL.

Nota: você precisa adicionar sqljdbc.frasco para o caminho de compilação

/ / localhost: o computador local funciona como um servidor

/ / 1433: número predefinido do Porto SQL

/ / utilizador : sa

/ / senha: use a senha, que é usada no momento da instalação do SQL server management studio, no meu caso, é '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();
            }

        }
    }
 0
Author: Kumar Kondiker, 2018-06-22 04:57:56

Esta amostra de programa Java liga-se à base de dados MySQL usando o JDBC, executa uma consulta e recupera e imprime o valor do campo da base de dados.

Este mesmo código de exemplo pode ser usado para se ligar a qualquer tipo de base de dados, tudo o que você precisa fazer é mudar o url de conexão (dbUrl na amostra). Para que este código funcione corretamente, você terá que baixar o driver mysql para JDBC em outras palavras Conectores Java de mysql.com local.

Se depois de baixar o URL ainda não o fizer o trabalho, então, é, provavelmente, devido ao classpath. Terá de adicionar o ficheiro JAR do controlador no claspath.

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
 -9
Author: giri, 2010-03-16 03:33:29