Galera, já to enchendo o saco com esses história de BD, né?! Hehehe…
Fiz essas classes pra conexão com BD e tals, mas não tá rolando! Eu acho que tá dando erro na linha que tá como comentário! No SQL Server, eu uso a autenticação do Windows pra conectar ele. Não subi esse BD pra nenhum servidor ainda, mas queria testar ele aqui antes de subir, pq ainda preciso mudar coisas no BD. Eu preciso colocar user="" e pass=""?
public static Connection getConnection() throws SQLException {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// '//TX1410US/SQLEXPRESS' é o que aparece no SQL Server quando eu abro.
//return DriverManager.getConnection("jdbc:sqlserver://TX1410US/SQLEXPRESS;integratedSecurity=true");
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}[/code]
[code]/**
*
* Método para pesquisar todos os clientes no banco de dados
* usando JDBC
*
* @return
*/
public List pesquisarTodos() {
try {
con = ConectaBanco.getConnection();
pstm = con.prepareStatement("SELECT * FROM Times);
rs = pstm.executeQuery();
listaTimes = new ArrayList<Times>();
while(rs.next()){
times = new Times();
times.set_Ds_Time(rs.getString("Ds_Time") );
listaTimes.add(times);
}
} catch (Exception e) {
e.printStackTrace();
//faço alguma coisa...
//não vou colocar nada aqui porque foge do escopo deste artigo
}
return listaTimes;
}[/code]
Eu importei o driver de conexão pro projeto, mas quando eu executo esse projeto, ele da o seguinte erro:
[quote]com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host has failed. java.net.UnknownHostException:
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at conexao.ConectaBanco.getConnection(ConectaBanco.java:14)
at services.TimesService.pesquisarTodos(TimesService.java:47)[/quote]
Será que o driver está errado? Eu to usando o SQL Server 2008 r2.
Eu só abro o SQL Server e no Nome do Servidor aparece isso ae![/quote]
Então, em todo caso, coloca o IP direto… faz um PING nesse nome aí e vê qual o IP dele, mas deve ser na sua própria máquina… e se quiser, tente olhar no arquivo HOSTS (fica em C:\Windows\System32\drivers\etc ), se existir uma linha pra esse nome, confere se o IP está certo, se não estiver corrija… e se não existir, adicione a linha seguindo os exemplos…
Aeeeee…fui no meuip.com.br e coloquei o IP da minha máquina e foi, porém, agora da outro erro:
[quote]java.sql.SQLException: No suitable driver found for jdbc:sqlserver:201.74.191.64;integratedSecurity=true
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at conexao.ConectaBanco.getConnection(ConectaBanco.java:14)
at services.TimesService.pesquisarTodos(TimesService.java:47)
at executar.Executar.main(Executar.java:21)[/quote]
É erro no driver! Alguém tem esse driver pra me passar? Eu importei o driver pro projeto pelo Build Path, mas parece que o driver está errado!
Eu uso a autenticação do Windows no SQL Server. Esse BD ainda não está em nenhum servidor. Eu gostaria de testar a minha aplicação antes de subir pro servidor.
De acordo com o erro, driver que eu coloquei na minha aplicação não é válido.
Sim vc está correto deve ser feito por ai mas as vezes ele não reconhece e por esse motivo deve ser adicionado manualmente. Já ocorreu isso comigo com MySql, e por isso estou te dizendo isso.
public static Connection getConnection() throws SQLException {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//Eu uso a autenticação do Windows pra acessar meu BD no SQL Server. Não subi o BD pra nenhum servidor ainda!
return DriverManager.getConnection("jdbc:sqlserver://192.168.0.1:1433;databaseName=Campeonatos;user=;password=;");
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
private Connection con;
private PreparedStatement pstm;
private ResultSet rs;
private String sql_pesquisar_todos = "SELECT * FROM Times";
private String sql_salvar = "";
private String sql_excluir = "DELETE FROM Times WHERE Ds_Time = 'Bohemios F.C.'"; //utilizo o nome, pois ainda não estamos utilizando um indice para as colunas
private List<Times> listaTimes;
private Times times;
public void imprimeLista(List<Times> time) {
Times[] times = (Times[]) time.toArray();
for (int i = 0; i < times.length; i++) {
System.out.println(times[i].get_Ds_Time());
}
}
/**
*
* Método para pesquisar todos os clientes no banco de dados
* usando JDBC
*
* @return
*/
public List<Times> pesquisarTodos() {
try {
con = ConectaBanco.getConnection();
pstm = con.prepareStatement(sql_pesquisar_todos);
rs = pstm.executeQuery();
listaTimes = new ArrayList<Times>();
while(rs.next()){
times = new Times();
times.set_Ds_Time(rs.getString("Ds_Time") );
listaTimes.add(times);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Não foi possível recuperar todos os registros.");
}
return listaTimes;
}
/**
*
* Não é utilizado no arquivo exemplo, no entanto demonstra como seria a inclusão
* de um cliente em nosso sistema
*
* @param cliente
*/
public void salvar(Times time) {
try {
sql_salvar = "INSERT INTO Times(Ds_Time) VALUES ('" + time.get_Ds_Time() + "')";
con = ConectaBanco.getConnection();
pstm = con.prepareStatement(sql_salvar);
pstm.setString(1, time.get_Ds_Time());
pstm.execute();
pstm.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Não foi possível inserir o registro.");
}
}
/**
*
* Não é utilizado no arquivo exemplo, no entanto demonstra como seria a exclusão
* de um cliente em nosso sistema
*
* @param cliente
*/
public void excluir(Times time) {
try {
//abrir conexão e definir o que será executado
con = ConectaBanco.getConnection();
pstm = con.prepareStatement(sql_excluir);
//vamos definir qual cliente será excluido
pstm.setString(1, time.get_Ds_Time());
//vamos executar a operação
pstm.execute();
//vamos fechar..
pstm.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Não foi possível excluir o registro");
}
}
O maior problema é que eu uso a autenticação do Windows, portanto não tem login e senha.
Já tentei colocar o usuário e senha do Windows, mas não foi.[/quote]
Pois é… aqui sempre usei assim e nunca deu problema.
Também nunca utilizei esse tipo de autenticação.
Tenta configurar normalmente com o usuario e senha do seu BD sem ir pela autenticação do windows. Verifique também se a porta e a database estão corretas.
Mas qual o erro que ele está lançando? posta o erro pra gente ver.
Dá uma olhada em alguns tutoriais do hibernate e tenta usar ele no seu projeto também.
[color=red][quote]com.microsoft.sqlserver.jdbc.SQLServerException: Falha na conexão TCP/IP com o host 189.55.190.4, porta 1433. Erro: “null. Verifique as propriedades da conexão, se uma instância do SQL Server está sendo executada no host e se está aceitando conexões TCP/IP na porta, e verifique se nenhum firewall está bloqueando as conexões TCP na porta.”.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1033)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at conexao.ConectaBanco.getConnection(ConectaBanco.java:14)
at services.TimesService.salvar(TimesService.java:90)
at executar.Executar.main(Executar.java:27)
Exception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at executar.Executar.main(Executar.java:18)[/quote][/color]