Bom pessoal, é o seguinte. Estou estagiando em uma empresa e estou tendo dificuldades com a parte de banco de dados.
Meu projeto timidamente implementa DAO.
Beans : Account, CompanyAccount(extends Account), BancoDeDados)
DAO : CompanyAccountDAO, TransacoesCA
Negocios : CompanyAccountValidacoes
O que está acontecendo é que não consigo inserir dados, sempre tomo null pointer! Queria uma ajuda com um modelo ou uma explicação de como fazer a inserção usando Statement &| PreparedStatement.
[code]import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class BancoDeDados {
private static Connection conexao;
private static Statement stmt;
private static ResultSet rs;
private static ResultSetMetaData rsMD;
public void conectar() {
try {
Class.forName("org.hsqldb.jdbcDriver");
conexao = DriverManager.getConnection("jdbc:hsqldb:Banco\\banco",
"sa", "");
stmt = conexao.createStatement();
System.out.print("Conectado!");
} catch (Exception e) {
e.printStackTrace();
}
}
}[/code]
[code]package DAO;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import Beans.CompanyAccount;
import Beans.BancoDeDados;
public class TransacoesCA implements CompanyAccountDAO {
public CompanyAccount create() {
return new CompanyAccount();
}
public void insert(CompanyAccount ca, int id, int fk, String username,
String pwd, String nome, Date data, int tipoConta, String cnpj) {
//MINHA DIFICULDADE ESTA NESSA PARTE!
BancoDeDados bd = new BancoDeDados();
try {
Statement stmt = null;
bd.conectar();
stmt.executeQuery("INSERT into companyaccount values (" + id + ","
+ fk + ", " + username + ", " + pwd + ", " + nome + ", "
+ data + ", " + tipoConta + ", " + cnpj + ")");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassCastException e) {
e.printStackTrace();
}
}
public void update(CompanyAccount ca, String username) {
//MINHA DIFICULDADE ESTA NESSA PARTE!
Connection con = null;
BancoDeDados bd = new BancoDeDados();
try {
st.executeUpdate("UPDATE companyaccount SET id='" + ca.getId()
+ "', '" + ca.getName() + "' WHERE username='" + username
+ "'");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassCastException e) {
e.printStackTrace();
}
}
public void delete(CompanyAccount ca, int id) {
//MINHA DIFICULDADE ESTA NESSA PARTE!
}
public void delete(int Username, CompanyAccount ca) {
//MINHA DIFICULDADE ESTA NESSA PARTE!
Connection con = null;
BancoDeDados bd = new BancoDeDados();
try {
con = bd.conectar();
Statement st = con.createStatement();
st.executeUpdate("DELETE FROM companyaccount WHERE username=("
+ ca.getUserName() + ")");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassCastException e) {
e.printStackTrace();
}
}
}[/code]
Na Main, eu quero inserir um objeto do tipo CompanyAccount no banco
[code]import java.sql.Date;
import java.sql.SQLException;
import Beans.BancoDeDados;
import Beans.CompanyAccount;
import DAO.TransacoesCA;
public class Principal {
public static void main(String args[]) throws SQLException {
BancoDeDados bd = new BancoDeDados();
bd.conectar();
CompanyAccount ca = new CompanyAccount();
TransacoesCA tca = new TransacoesCA();
tca.insert(ca, 1, 2, "joaozinho", "sdas", "joao", null, 1, "312.612.312-63");
}
[/code]