Conexão com SQLServer2005

12 respostas
somma

Pessoal,

Estou tentando criar uma conexão com este banco e não estou conseguindo???

Entrei neste site www.connectionstrings.com e não sei identificar qual String utilizar para que a conexão seja bem sucedida ???

Fiz um teste com o banco de dados access e deu certinho agora com o SQL-Server2005 não estou conseguindo???

Será que é erro de configuração nas Ferramentas Administrativas do sistema?

Obrigado!

12 Respostas

furutani

Qual é a exceção???

somma

é aí que esta… não aparece nada!!!

Quando eu preencho o mini cadastro e envio ele me devolve uma janela toda branca e na barra de status ele fica carregando bem lentamente até aparecer a pagina de erro do próprio IE.

furutani

o SQLServer2005 esta em um servidor separado da sua maquina de desenvolvimento?
se tiver experimentar da um ping.

somma

O SQL Servr está na minha máquina.

E este é o codigo de inserção:

public boolean inserirCadastro1(String s_matricula, int s_rg, int s_cpf, String s_nome, String s_end, int n_numero, int n_apto,
            String s_bairro, String s_cidade, String s_uf, int n_cep, int n_fone, int n_celular, String s_sexo,
            String s_conjuge, int s_datanascdia, int s_datanascmes, int s_datanascano, String s_email, String s_senha,
            String s_senhaconfir){

        boolean returnValue = false;
        
        long orderId = System.currentTimeMillis();
        Connection connection = null;
        PreparedStatement pstmt = null;

        try{
            connection = DriverManager.getConnection("dbUrl, dbUserName, dbPassword");
            connection.setAutoCommit(false);
            Statement statement = connection.createStatement();
            
            String Insert_SQL = "INSERT INTO Clientes(s_matricula, s_rg, s_cpf, s_nome, s_end, n_numero," +
            "n_apto, s_bairro, s_cidade, s_uf, n_cep, n_fone, n_celular, s_sexo, s_conjuge," +
            "s_datanascdia, s_datanascmes, s_datanascano, s_email, s_senha, s_senhaconfir)"+
            " Values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

            statement.executeUpdate(Insert_SQL);
            statement.close();
            connection.close();
            returnValue = true;
            
        }catch(SQLException e){
            System.out.println(e.toString());
        }
          return returnValue;  
    }
fabio.nascimento

Cara seguinte

Primeiramente te aconselho a separar a conexao da classe que insere.

É mais fácil e legivel, pois dessa forma você identifica corretamente se o problema tá na conexao ou tá no preparestament ou mesmo na sql.

Do jeito que tá você teria que ficar dando out.println em vários pontos da classe para identificar o problema.

Eu sei que vc mencionou que com o access funciona na boa, mas o sql server tem suas particularidades.

?Separa e posta o codigo aí pra gente.

Ahhh e tem mais quando separar trate via try catch todos os erros possiveis de conexão.

Fabio Nascimento

Pedrosa

Exatamente conforme o nosso amigo disse separe a conexão da classe de negócio, qual driver vc está usando para se conectar, o jtds é o melhor para SQL Server, se a sua classe de conexao estiver ok, passe para o proxima etapa, outra dica, não use método orientado a Strings conforme um amigo meu fala,

//antes de chamar esse metodo sete o bean
SeuBean seubean = new SeuBean()
seubean.setMatricula("xxxx");
...

inserirCadastro1(SeuBean seubean){
    PreparedStatement pstmt = this.connection.prepareStatement(strSQL);
    //pega os valores
   pstmt.setString(1, seubean.getMatricula());
   ...
   pstmt.execute();
   psmt.close();



}

//Conexao

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

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());
		}
	}
	public static void main(String[] args) {
		try {
			Connection con = ConnectionFactory.getConnection();
	
			String query = "SELECT * FROM TABELA";
			
			PreparedStatement stmt = con.prepareStatement(query);
			ResultSet rs = stmt.executeQuery();
			while (rs.next()) {
				System.out.println("CAMPO1" + rs.getString(1));
				
			}
		
		}catch (Exception e) {
			e.printStackTrace();
		}	
	
	}

	
}
somma

/valeu galera/

vou modificar o meu codigo e fazer como o proposto.

Obrigado

somma

Estou apanhando para utilizar o UseBean…

Podem me indicar algum material…

Este tipo de desenvolvimento que estava utilizando acima foi pelo livro " Java para Web com Servlets, JSP e EJB".

Estava desenvolvendo utilizando arquitetura MVC.

Seriam paginas (.jsp)

que iriam fazer requisição em um ServletController.

Mas pelo o que estou vendo este livro não ira me ajudar neste primeiro momento.

Obrigado pelas dicas.

Pedrosa

Esse SeuBean nada mais é que uma classe com getters e setters que equivale ao Model do MVC:

public class SeuBean {
	private String matricula;
	private int rg;
                //crie todos os parametros aqui
	
	public String getMatricula() {
		return matricula;
	}
	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}
	public int getRg() {
		return rg;
	}
	public void setRg(int rg) {
		this.rg = rg;
	}
	
	 

}

Faça com todos os parametros que voce recebia em seu método, agora ele recebera um objeto esse Bean!

somma

tá....

Com base na classe de conexão a banco de dados que me passou eu criei essa:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Conexao {
    
    /**
     * Conexão SQLServer*/
    private static final String URL = "jdbc:jtds:sqlserver:localhost/iperfil";
    private static final String DRIVER = "net.sourceforge.jtds.jdbc.Driver";
    private static final String USUARIO = "sa";
    private static final String SENHA = "sa";
    
    
    /** Criando uma nova instancia de Conexao */
    public Conexao() {
    }
    
    public static Connection getConnection() throws SQLException {
        try {
            Class.forName(DRIVER);
            return DriverManager.getConnection(URL,USUARIO,SENHA);
        } catch (ClassNotFoundException e) {
            throw new SQLException(e.getMessage());
        }
    }
    
    
    
    public static void fechaConexao(Connection conn, Statement stmt, ResultSet rs) throws SQLException {
    	fechaResultSet(rs);
    	fechaStatement(stmt);
    	fechaConexao(conn);
    }
    
    /**
     * Fecha a Conexão
     */
    public static void fechaConexao(Connection conn) throws SQLException {
    	if (conn != null) {
            conn.close();
    	}
    }

    /**
     * Fecha o Statement
     */
    public static void fechaStatement(Statement stmt) throws SQLException {
    	if (stmt != null) {
            stmt.close();
    	}
    }
    
    /**
     * Fecha o PreparedStatement
     */
    public static void fechaPreparedStatement(PreparedStatement pstmt) throws SQLException {
    	if (pstmt != null) {
            pstmt.close();
    	}
    }
    
    /**
     * Fecha o ResultSet
     */
    public static void fechaResultSet(ResultSet rs) throws SQLException {
    	if (rs != null) {
            rs.close();
	}
    }
}

Agora vou criar os getters e setters da aplicação e quando o usuario clicar em enviar eu vou ter um Servlet ou JSP para capturar esses dados e inserir no banco, sim?

valeu

Pedrosa

Nunca coloque nenhum código java no jsp, use Servlets que vão receber seus dados via request e acionar as classes de negócio e retornar ao jsp.

somma

certo!

Criado 6 de novembro de 2006
Ultima resposta 6 de nov. de 2006
Respostas 12
Participantes 4