Ajuda - conexão com o banco Microsoft SQL Server

7 respostas
dfarias

Estou com dificuldade para conectar no sql server. Tentei com o mysql e obtive êxito. Quero saber onde está o erro.

Segue abaixo o código
:stuck_out_tongue:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Conexao;

import java.sql.*;

public class Conexao {
static String status = " ";

public static Connection getConnection (){
Connection conn = null;

try {
Class.forName ("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=usuario;selectMethod=cursor;", "sa", "123456");

status = "Connection opened";}

catch (SQLException e) {
status = e.getMessage();
}catch (ClassNotFoundException e) {
status = e.getMessage();
} catch (Exception e ){
status = e .getMessage();}

return conn;

}

}


// pacote padrão
//classe main.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import Conexao.Conexao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;

/**
 * @author Daniel
 */
public class main {

    static int op;
    static String nome;
    static Usuario usu = new Usuario ();
    
    public static void menu() {
        op = Integer.parseInt(JOptionPane.showInputDialog("1-adicionar\n 2-remover \n 3-editar \n4-exibir\n 5-sair"));
        //JOptionPane.showMessageDialog(null, "");
        
      
    }

    public static void main(String[] args) {

   
            menu();
           
            while (op!=5) {
              
                switch (op) {
            case 1:
                adicionar();
                break;
            case 2:
                remover();
                break;
            case 3:
                editar();
                break;
            case 4:
                exibir();
                break;
                                }
            menu();            
            }   

        

    }

    public static void adicionar() {
        Connection conn = Conexao.getConnection();
        try {
            Statement st = conn.createStatement();

            nome = JOptionPane.showInputDialog("informe nome");
            String sql = "";
            //sql += ;
            //sql+= "');" ;


            st.executeUpdate("INSERT INTO pessoa VALUES ('" + nome + "');");

        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Erro " + e.getMessage());
        }

        nome = null;
    }

    public static void remover() {
        Connection conn = Conexao.getConnection();
        try {
            Statement st = conn.createStatement();

            nome = JOptionPane.showInputDialog("informe nome");
            String sql = "";

            sql += "DELETE FROM pessoa ";
            sql += "WHERE NOME='" + nome + "';";

            st.executeUpdate(sql);



        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());
        }
        
        nome =null;
    }

    public static void editar() {

        Connection conn = Conexao.getConnection();
        try {

            Statement st = conn.createStatement();

            String nome;

            nome = JOptionPane.showInputDialog("informe nome para busca");
            usu.setNome(nome);
            
            String sql = "";

            sql += "SELECT nome FROM p ";
            sql += "WHERE nome='" + nome + "';";

            if (st.executeQuery(sql) != null) {
                //sql = ;
                st.executeUpdate("UPDATE pessoa SET nome = '" + usu.getNome() + "' WHERE nome =  '"+nome+"';");
                //JOptionPane.showMessageDialog(null, "alterado com sucesso");
                        

            } else {
                JOptionPane.showMessageDialog(null, "nao foi possivel alterar nome");
            }







        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());
        }
        
        nome = null;
    }

    public static void exibir() {

        select ();

    }
    
    public static void select(){
        try {

Connection conn = Conexao.getConnection();
Statement st = conn.createStatement();
String q = "";

q+="SELECT * FROM pessoa ";
ResultSet rs = st.executeQuery (q);

while (rs.next()){
String nome = rs.getString ("nome");
    JOptionPane.showMessageDialog(null, nome);
		}
}catch (Exception e) {
JOptionPane.showMessageDialog(null,e.getMessage());
        
}
                              
    
                                }  
}

7 Respostas

dfarias

Erro ao se fazer o INSERT

Exception in thread "main" java.lang.NullPointerException
	at main.adicionar(main.java:61)
	at main.main(main.java:39)
Java Result: 1
dfarias

ninguém? OMG :shock:

nel

Calma colega, muita calma. Alguns daqui são igual eu, responde dúvidas enquanto estão aguardando um build no trabalho.
Veja essa linha:

op = Integer.parseInt(JOptionPane.showInputDialog("1-adicionar\n 2-remover \n 3-editar \n4-exibir\n 5-sair"));

Está retornando algo? Pois parece que está vindo null e gerando o erro :slight_smile:
E outra coisa, por favor, POR FAVOR, não faça += para concatenar String.

1 - Tu declarou uma String vazia para depois concatenar, sendo que já poderia estar preenchida
2 - Use um StringBuffer da vida se quiser fazer isso

O seu erro é algo como:

String s = null; s.trim();

Referência nula tentando executar uma ação, se a linha que postou não for a que eu comentei acima, procure e veja o que pode estar errado.
O resto não vou analisar :slight_smile:

Abraços.

I

Da uma olhada nesse post, criei um tutorial, pois tentei de tudo na época, dai quando consegui fiz para consulta.
Acredito que no seu caso a url de conexão está errada.

dfarias

nel:
Calma colega, muita calma. Alguns daqui são igual eu, responde dúvidas enquanto estão aguardando um build no trabalho.
Veja essa linha:

op = Integer.parseInt(JOptionPane.showInputDialog("1-adicionar\n 2-remover \n 3-editar \n4-exibir\n 5-sair"));

Está retornando algo? Pois parece que está vindo null e gerando o erro :slight_smile:
E outra coisa, por favor, POR FAVOR, não faça += para concatenar String.

1 - Tu declarou uma String vazia para depois concatenar, sendo que já poderia estar preenchida
2 - Use um StringBuffer da vida se quiser fazer isso

O seu erro é algo como:

String s = null; s.trim();

Referência nula tentando executar uma ação, se a linha que postou não for a que eu comentei acima, procure e veja o que pode estar errado.
O resto não vou analisar :slight_smile:

Abraços.

e pq quando eu usei o mysql deu tudo certo?

nel

Por isso comentei de analisar a linha em que indica o erro. Qual linha exatamente está o erro ?
Poste somente a linha. E como o colega acima citou, verifica se a URL está correta, pois parece então não estar conseguindo realizar a conexão com o banco.

Abraços.

dfarias

conseguir resolver o problema. No caso, eu tinha que configurar o “SQL Server Configuration Manager”.

:smiley:

Criado 22 de janeiro de 2012
Ultima resposta 23 de jan. de 2012
Respostas 7
Participantes 3