Inserir : banco de dados

4 respostas
E
Pessoal, bom dia!!!

Alguém pode ver o q tem de errado nesse código de “Inserir algo num banco de dados”:

public Disciplina insert (Disciplina disciplina) {

Connection con = ConexaoUtil.getConnection();

// Disciplina disciplina = null;

try{

Statement stmtid = con.createStatement();

ResultSet rsid = stmtid.executeQuery(“select max(id) as max_id from disciplina”);

int max_id = -1;

int id = -1;

if(rsid.next()){

max_id = rsid.getInt(“max_id”);

id = max_id +1;
}
           else{
               id = 1;
           }
           
           Statement stmt = con.createStatement();
       ResultSet rs = stmt.executeQuery("insert into disciplina (id,nome,ch,data_criacao,ativo) values('disciplina.getid()','disciplina.getnome()','disciplina.getch()','disciplina.getdata_criacao()','disciplina.getativo()'");
           if(rs.next()){
		    String nome = rs.getString("Java");
		    int ch = rs.getInt("75");
		    Date dataCriacao = rs.getDate("17/02/1977");
	            boolean ativo = rs.getBoolean("ativo");

                        disciplina  = new Disciplina();
			disciplina.setId(33);
			disciplina.setNome("Java");
			disciplina.setCh(75);
			disciplina.setDataCriacao(dataCriacao);
			disciplina.setAtivo(ativo);
                    }
           
       }catch (SQLException ex) {
		ex.printStackTrace();
		System.err.println("Não foi possível inserir disciplina");
                    }
	return null;
}

4 Respostas

E

Amigo… o console gera algum erro ???
Post o erro que será mais fácil encontrar a solução…

Abraçuuu…

CyberX

Coloque seu código dentro da tag [code] para que possamos avaliar com mais detalhes.

Tks.

angeliski
public Disciplina insert (Disciplina disciplina) {
Connection con = ConexaoUtil.getConnection();
// Disciplina disciplina = null;
try{
Statement stmtid = con.createStatement();
ResultSet rsid = stmtid.executeQuery("select max(id) as max_id from disciplina");
int max_id = -1;
int id = -1;
if(rsid.next()){
max_id = rsid.getInt("max_id");
id = max_id +1;

}
else{
id = 1;
}

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("insert into disciplina (id,nome,ch,data_criacao,ativo) values('disciplina.getid()','disciplina.getnome()','disciplina.getch()','disciplina.getdata_criacao()','disciplina.getativo()'");
if(rs.next()){
String nome = rs.getString("Java");
int ch = rs.getInt("75");
Date dataCriacao = rs.getDate("17/02/1977");
boolean ativo = rs.getBoolean("ativo");

disciplina = new Disciplina();
disciplina.setId(33);
disciplina.setNome("Java");
disciplina.setCh(75);
disciplina.setDataCriacao(dataCriacao);
disciplina.setAtivo(ativo);
}

}catch (SQLException ex) {
ex.printStackTrace();
System.err.println("Não foi possível inserir disciplina");
}
return null;
}
seu codigo esta bem errado. Primeiro: Você nao pode fazer isso:
ResultSet rs = stmt.executeQuery("insert into disciplina (id,nome,ch,data_criacao,ativo) values('disciplina.getid()','disciplina.getnome()','disciplina.getch()','disciplina.getdata_criacao()','disciplina.getativo()'");
porq a string nao vai reconhecer seu objeto disciplina, você pode CONCATENAR ou usar o praparedStatement. Aqui um exemplo simples: http://tutorials.jenkov.com/jdbc/preparedstatement.html OUTRA coisa, quando você usa o comando INSERT,DELETE,UPDATE nao pode trabalhar com o executeQuery, esses comandos nao retornan um resultset, eles só realizam ação no banco.

Basicamente é isso.

E

Pessoal esse é o arquivo DisciplinaDAO....

Onde se encontra todas os Metodos Atualizar, Inserir e deletar, a minha duvida é

package aula.dao;

import aula.conexao.ConexaoUtil;
import aula.modelo.Disciplina;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author israel
 */
public class DisciplinaDAO {

	public ArrayList<Disciplina> getAll() {
		Connection con = ConexaoUtil.getConnection();
		ArrayList<Disciplina> disciplinas = null;
		try {
			Statement stmt = con.createStatement();
			ResultSet rs = stmt.executeQuery("select * from disciplina");
			
			disciplinas = new ArrayList<Disciplina>();
			
			while (rs.next()) {
				int id = rs.getInt("id");
				String nome = rs.getString("nome");
				int ch = rs.getInt("ch");
				Date dataCriacao = rs.getDate("data_criacao");
				boolean ativo = rs.getBoolean("ativo");
				
				Disciplina d = new Disciplina();
				d.setId(id);
				d.setNome(nome);
				d.setCh(ch);
				d.setDataCriacao(dataCriacao);
				d.setAtivo(ativo);
				
				disciplinas.add(d);
			}
			
			
		} catch (SQLException ex) {
			ex.printStackTrace();
			System.err.println("Não foi possível realizar consulta");
			disciplinas = null;
		} finally {
			ConexaoUtil.close(con);
		}
		
		return disciplinas;
	}
	
	public Disciplina get(int id) {
		Connection con = ConexaoUtil.getConnection();
		Disciplina disciplina = null;
		try {
			Statement stmt = con.createStatement();
			ResultSet rs = stmt.executeQuery("select * from disciplina where id = " + id);
			
			if (rs.next()) {
//				int id = rs.getInt("id");
				String nome = rs.getString("nome");
				int ch = rs.getInt("ch");
				Date dataCriacao = rs.getDate("data_criacao");
				boolean ativo = rs.getBoolean("ativo");

				disciplina = new Disciplina();
				disciplina.setId(id);
				disciplina.setNome(nome);
				disciplina.setCh(ch);
				disciplina.setDataCriacao(dataCriacao);
				disciplina.setAtivo(ativo);
			}
				
		} catch (SQLException ex) {
			ex.printStackTrace();
			System.err.println("Não foi possível realizar consulta");
		} finally {
			ConexaoUtil.close(con);
		}
		
		return disciplina;
	}
	
	public Disciplina insert (Disciplina disciplina) {
		Connection con = ConexaoUtil.getConnection();
		try {
			Statement stmtId = con.createStatement();
			ResultSet rsId = stmtId.executeQuery("select max(id) as max_id from disciplina");
			int idMax = -1;
			int id = -1;
			if(rsId.next()) {
				idMax = rsId.getInt("max_id");
				id = idMax+1;
			} else {
				id = 1;
			}
			
			disciplina.setId(id);
			
			SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
			Date dataCriacao = disciplina.getDataCriacao();
			String dataFormatada = dateFormat.format(dataCriacao);
			
			Statement stmt = con.createStatement();
			stmt.executeUpdate("insert into disciplina (id, nome, ch, data_criacao, ativo) values("
					+ disciplina.getId()
					+ ",'" + disciplina.getNome() + "'"
					+ "," + disciplina.getCh()
					+ ",'" + dataFormatada + "'"
					+ "," + disciplina.isAtivo()
					+ ")");
		} catch (SQLException ex) {
			ex.printStackTrace();
			System.err.println("Erro ao inserir registro");
			disciplina.setId(-1);
		} finally {
			ConexaoUtil.close(con);
		}
		
		return disciplina;
	}
	
	public Disciplina save(Disciplina disciplina) {
		return null;
	}
	
	public void remove(Disciplina disciplina) {
		Connection con = ConexaoUtil.getConnection();
		try {
			Statement stmt = con.createStatement();
			stmt.executeUpdate("delete from disciplina where id = " + disciplina.getId());
		} catch (SQLException ex) {
			ex.printStackTrace();
		}
		
	}	
	
		public void remove(int idDisciplina) {
		Connection con = ConexaoUtil.getConnection();
		try {
			Statement stmt = con.createStatement();
			stmt.executeUpdate("delete from disciplina where id = " + idDisciplina);
		} catch (SQLException ex) {
			ex.printStackTrace();
		}
		
	}	

}

Pessoal esse é o arquivo DisciplinaDAO....

Onde se encontra todas os Metodos Atualizar, Inserir e deletar, eu ja estou conseguindo selecionar , com o comando "SELECT" pelo "GetID" gostaria de saber como faço para inserir, to tentando aqui mas nao to conseguindo...
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package aula.testes;

import aula.dao.DisciplinaDAO_2;
import aula.modelo.Disciplina;
import java.util.ArrayList;

/**
 *
 * @author erivelto
 */
public class TesteDisciplinaDAO {
	
	public static void main(String args[]) {
//		DisciplinaDAO dao = new DisciplinaDAO();
//		
//		ArrayList<Disciplina> disciplinas = dao.getAll();
//		
//		for (int i = 0; i < disciplinas.size(); i++) {
//			Disciplina d = disciplinas.get(i);
//			
//			System.out.println(d.getId());
//			System.out.println(d.getNome());
//			System.out.println(d.getCh());
//			System.out.println(d.getDataCriacao());
//			System.out.println(d.isAtivo());
//		}

		DisciplinaDAO_2 disciplinaDAO = new DisciplinaDAO_2();
		
		Disciplina disciplina = disciplinaDAO.get(2);
		
		System.out.println("id: " + disciplina.getId());
		System.out.println("nome: " + disciplina.getNome());
		System.out.println("ch: " + disciplina.getCh());
		System.out.println("dataCriacao: " + disciplina.getDataCriacao());
		System.out.println("ativo: " + disciplina.isAtivo());
		
	}
}

Desde já agradeço a ajuda, se alguem estiver algum exemplo que possa me ajudar agradeço.

Criado 16 de abril de 2012
Ultima resposta 1 de mai. de 2012
Respostas 4
Participantes 4