Conectar Com Sql Server [outro Problema]

23 respostas
colored

Tipo ja fucei em varios topicos e sites, mas ta foda…
Com MySql eu sei fazer, mas o sql n consigo… alguem pod da uma mao

public static Connection getConnection() throws SQLException, Exception {   
    String      strUser     = "sa";   
    String      strPassword = "";   
    String      url         = "jdbc:microsoft:sqlserver://seu_servidor:sua_porta;dataBaseName=nome_da_database;SelectMethod=cursor";   
    Connection  con         = null;   
 
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");   
        con = DriverManager.getConnection(url + ";User=" + strUser + ";Password=" + strPassword );   
       return con;

peguei esse exeplo aki no Guj…

Mas Tipo To Usando o Driver JTDS a Class For Name Fica assim neh…
Class.forName(“net.sourceforge.jtds.jdbc.Driver”);

E a url fica como…
Banco: Nortwind ( pra testa)

Esse eskema de servidor q eu me embolo.
O Nome do Servidor daki eu sei, mas como eu pego essa porta?

Se alguem puder da uma força ai valeu

23 Respostas

G

Fala ae colored,
Se não me engano a porta padrão do sqlserver é a 1433.
Testa ai, qualquer coisa post denovo!
[]´s

bernardo.rafael

Cara… a url que vc deve usar com jdts é essa aqui:

jdbc:jtds:sqlserver://[nome ou ip do host]:[numero da porta para conexao]/[nome da database]

:wink:

Pedrosa

Se for a padrão nem precisa informar a porta:

public class ConnectionFactory { 
	private static final String url = "jdbc:jtds:sqlserver://servidor/base";
	private static final String driver = "net.sourceforge.jtds.jdbc.Driver";
	private static final String usuario = "user";
	private static final String senha = "password";
	
	public static Connection getConnection() throws SQLException {
		try {
			Class.forName(driver);
			return DriverManager.getConnection(url, usuario, senha);
		} catch (ClassNotFoundException e) {
			throw new SQLException(e.getMessage());
		}
	}
}
colored

Karamba N Deu ;x

public class ConnectionFactory {   
    private static final String url = "jdbc:jtds:sqlserver://SCABBDIE/Northwind";   
    private static final String driver = "net.sourceforge.jtds.jdbc.Driver";   
    private static final String usuario = "";   
    private static final String senha = "";   
       
    public static Connection getConnection() throws SQLException {   
        try {   
            Class.forName(driver); 
            System.out.println("Conectando ao Banco");
            return DriverManager.getConnection(url, usuario, senha);   
        } catch (ClassNotFoundException e) {   
            throw new SQLException(e.getMessage());   
        }   
    }   
}
public class ContatoDAO {
	
	private Connection c;
	
	public ContatoDAO() throws SQLException{
		c = ConnectionFactory.getConnection();
	}
	
	public void adiciona(Contato contato){	
			
		try {
			String sql = "Insert Into Contatos(nome,endereco,email)values(?,?,?)";
			PreparedStatement ps = (PreparedStatement) c.prepareStatement(sql);
			
			ps.setString(1,contato.getNome() );
			ps.setString(2,contato.getEmail());
			ps.setString(3,contato.getEndereco());
			
			ps.execute();
			ps.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
			
	}
}
colored
public static void main(String[] args) {
		
		Contato contato = new Contato();
		contato.setId(1);
		contato.setNome("Jefferson");
		contato.setEndereco("Rua BlaBla");
		contato.setEmail("[email removido]");
		
		try{
			ContatoDAO dao = new ContatoDAO();
			dao.adiciona(contato);
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
			System.out.println("Ok");
		}
		
	}

Entao é isso ai tipo se alguem tiver saco d ver o q eu to fazendo de errado valeu -]…

Tem mais uma classe criando os atributos mas nem preciso por aki…

esse é o erro…

Ok

java.sql.SQLException: net.sourceforge.jtds.jdbc.Driver

at Jefferson.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:20)

at bean.ContatoDAO.(ContatoDAO.java:14)

at main.Adiciona.main(Adiciona.java:19)

O Erro é na classe da Conexao.

bernardo.rafael

1º - Verifique se as bibliotecas do sourceforge estão relacionadas no classpath de execução de suas classes.

2º - Na hora de conectar, faça da seguinte maneira:

try {     
    DriverManager.registerDriver(new net.sourceforge.jtds.jdbc.Driver());
    System.out.println("Conectando ao Banco");  
    return DriverManager.getConnection(url, usuario, senha);     
} catch (Exception e) {     
    throw new SQLException(e.getMessage());     
}

:wink:

colored

Bom n deu. =x

Tipo Pra adicionar o jar la no projeto é so ir em properties/java build path/ libraries/ add external jar

N eh?

bernardo.rafael

Sim… adicionar como external jar funciona tbm…
mas vc precisa adicionar o jdts no path durante a execução.

Pra ficar mais simples, copie o arquivo da biblioteca para uma pasta dentro do seu projeto e adicione como um jar da sua aplicação mesmo.
no projeto é so ir em properties/java build path/ libraries/ add jar e selecionar os arquivos da biblioteca.

ramilani12

colored:
Bom n deu. =x

Tipo Pra adicionar o jar la no projeto é so ir em properties/java build path/ libraries/ add external jar

N eh?

Sim…

colored

Num Consegui ta foda ;/

ramilani12

Esta lançando alguma exceção post aqui:

Segue um exemplo utilizando o JTDS para se conectar no SQL Server:

public Connection getConnectionSQLServer() 
	{
		Connection conn = null;
		try 
		{
			Class.forName("net.sourceforge.jtds.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:jtds:sqlserver://host/database","user","password");
			
		} 
		catch (SQLException ex) 
		{
			
			log.error("Erro ao abrir a conexão com base de dados , ex);
		} catch (ClassNotFoundException ex) 
		{
			// TODO Auto-generated catch block
			log.error("Problemas em encontrar o Driver JTDS ", ex);
		}
		catch(Exception ex)
		{
			log.error("Exceção Inesperada " , ex);
		}
	return conn;
	}
colored

Então eu fiz assim…

public class ConnectionFactory {
	static public Connection getConnection() throws SQLException{
		try{
		Class.forName("net.sourceforge.jtds.jdbc.Driver");   
		System.out.println("Conectando ao Banco");
		Connection c;
		c = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost/northwind"," "," ");   
		return c ;
		}
		catch (ClassNotFoundException e) {
			throw new SQLException(e.getMessage());	
		}	
	}
}

e ta dando esse erro…

Conectando ao Banco

java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:614)

at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:344)

at net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50)

at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at pck_jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:17)

at bean.ContatoDAO.(ContatoDAO.java:17)

at main.Adiciona.main(Adiciona.java:18)

Caused by: java.io.IOException: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

at net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1889)

at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:587)

 8 more

ok
colored

Tirei uma screen pra verem … como eu estou fazendo…

ramilani12

Este erro eh devido que sua autenticação no SQL Server utiliza Windows authentication , vc precisa colocar no se CLASSPATH a seguinte dll: ntlmauth.dll

pode baixar aqui : http://download.aquafold.com/download/jdbc-drivers/jTDS/

Veja se agora funciona , senao utilize um usuario especifico para se conectar com base de dados …

luiscesarinfo

Instale o Service Pack 3 do SQL Server… tive problemas de conexão, não consguia de forma nenhuma e a String de conexão estava correta, o driver estava correto… tudo certinho. Foi quando entrei num forum desses por ai e me disseram para instalar o SP3. Funcionou sem precisar de mais nada.

Tenta isso ai…

[]'s Luís César

colored

ramilani

Em que pasta jogo esse arquivo

ramilani12

Coloque no seu CLASSPATH

SET CLASSPATH=%CLASSPATH%;c:\ntlmauth.dll
colored

Brilhante…
Ate q enfim deu certo…

Muito Obrigado ai a todos =P…

ramilani12

colored:
Brilhante…
Ate q enfim deu certo…

Muito Obrigado ai a todos =P…

Colando no classpath a dll deu certo?

colored

Sim =D…Valeu

colored

Tipo no Trampo Deu Tudo Certo… Ai hj instalei o sql em ksa… talz

Ai fui copiei a aplicação pra ver se ia conectar, pra eu começar fazer um projeto q eu to na cabeça…
Mas deu esse erro… eu colokei la na class path o arquivinho la mas mesmo assim ta dando erro…

Conectando ao Banco

java.sql.SQLException: Network error IOException: Connection refused: connect

at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:385)

at net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50)

at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:182)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at pck_jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:16)

at bean.ContatoDAO.(ContatoDAO.java:17)

at main.Adiciona.main(Adiciona.java:18)

Caused by: java.net.ConnectException: Connection refused: connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:304)

at net.sourceforge.jtds.jdbc.SharedSocket.(SharedSocket.java:255)

at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:310)

 7 more

ok

O q seria? Aki ta como windows autentication tb

ramilani12

Verifique se firewall do windows nao esta barrando a conexao com SQL-Server libere tbm a porta que ele utiliza …

colored

Eu tentei. ajeita mas n deu mto certo kk;x

Criado 21 de janeiro de 2008
Ultima resposta 25 de jan. de 2008
Respostas 23
Participantes 6