Duvida na hora de fazer o insert com HSQLDB

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]

O problema com a conexão eu consegui resolver, era necessario retornar a mesma na chamada do método de abertura do banco.

O problema que tenho agora é o seguinte :

java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: COMPANYACCOUNT at org.hsqldb.jdbc.Util.sqlException(Unknown Source) at org.hsqldb.jdbc.Util.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source) at org.hsqldb.jdbc.JDBCStatement.executeQuery(Unknown Source) at DAO.TransacoesCA.insert(TransacoesCA.java:22) at Principal.main(Principal.java:12) Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: COMPANYACCOUNT at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.SchemaManager.getTable(Unknown Source) at org.hsqldb.ParserDQL.readTableName(Unknown Source) at org.hsqldb.ParserDQL.readSimpleRangeVariable(Unknown Source) at org.hsqldb.ParserDML.compileInsertStatement(Unknown Source) at org.hsqldb.ParserCommand.compilePart(Unknown Source) at org.hsqldb.ParserCommand.compileStatements(Unknown Source) at org.hsqldb.Session.executeDirectStatement(Unknown Source) at org.hsqldb.Session.execute(Unknown Source) ... 4 more

Quando vc utiliza HSQLDB no modo standalone, ele permite somente uma conexão por vez. Certifique-se que vc não está com a interface do HSQLDB aberta.

Oi,

Não encontra o COMPANYACCOUNT, verifique se está escrito correto… :wink: