Executar comando do compilador (JAVA) no banco de dados(SQL)

Pessoal as dúvidas não acabam, agora que consegui conectar o banco de dados no JAVA peciso fazer com que seja executado um código em JAVA e que ele crie as tabelas em SQL lá no banco de dados, alguem pode me indicar algum caminho, pois voltei a estaca inicial!

Obrigado pela ajuda gurizada! :smiley:

Sugiro que leia a apostila FJ-21 da Caelum, onde isso é tratado detalhadamente.

Obrigado, já tenho a apostila baixada, mas não sabia que podia encontrar isso lá, se alguem tiver mais dicas, explicações ou materias podem postar! :smiley:

marco, você deve ter se confundido com os assuntos na FJ-21 tem muito sobre isso, mas trata de conexões com o banco e não inserção de dados através de comandos do compilador (JAVA)
mas obrigado! :slight_smile:

Não sei se é o caso mas aki mesmo no GUJ tem um artigo que fala sobre “retirar SQL do código java”, por esse artigo ensina como usar arquivos .sql através do java.

[]'s

Segue o link do artigo

http://www.guj.com.br/article.show.logic?id=115

[]'s

marco, você deve ter se confundido com os assuntos na FJ-21 tem muito sobre isso, mas trata de conexões com o banco e não inserção de dados através de comandos do compilador (JAVA)
mas obrigado! :)[/quote]
Pois esse o caminho: você cria uma classe que será a fábrica de conexões, pega um nova conexão ao banco e executa um PreparedStatement cria que crie a tabela (por exemplo, um “CREATE TABLE IF NOT EXISTS…”. E para adiciona os dados, use também um PreparedStatement com o comando SQL adequado.

tentei cirar uma tabela com a seguinte linha de código:

PreparedStatement prepstm = con.prepareStatement("CREAT TABLE");

ele compila e roda bonmitinho, mas se eu olhar no banco nada é criado!
Alguém sabe me dizer o que está havendo?

Vlw!!

Você precisa executar o comando:

prepstm.execute();

Além disso, a sintaxe do comando SQL está errada.

poderia me mostrar a sintaxe correta ou me indicar um link, apostila, site?

vlw!

Alguem poderia me dizer como mando um comando por exemplo para criar uma tabela em SQL através do algoritimo de JAVA?
:roll:

"CREATE TABLE [IF NOT EXISTS] nomeDaTable ( campo1 TIPO [TAMANHO] [NOT] NULL [, campo2 TIPO [TAMANHO] [NOT] NULL [, ...]] PRIMARY KEY (campo))"

Na prática, um exemplo:

"CREATE TABLE contatos (id INT NOT NULL, nome VARCHAR(20), endereco VARCHAR(50), PRIMARY KEY(id))"

vou tentar utilizar algo parecido, se puder explicar o exemplo agradeço, realmente mto! :wink:

Consegui criar, muito obrigado marco!

Mais uma duvida como insiro dados nessa tabela, no caso as linhas?

alguém saberia me responder?

Obrigado pessoal!

vc realmente leu a apostila? tipo, capitulo 2.9, página 14, “Inserindo dados no banco”.

li sim, mas não consegui entender como funciona a sintaxe!

Revisando o exmplo

public class JDBCInsere { public static void main(String[] args) throws SQLException { // conectando Connection con = new ConnectionFactory().getConnection(); //aqui abriu a conexão // cria um preparedStatement String sql = "insert into contatos (nome,email,endereco,dataNascimento) values (?,?,?,?)"; //esse é o comando SQL a ser executado. cada ? é um parametro. PreparedStatement stmt = con.prepareStatement(sql); //aqui compila o comando // preenche os valores stmt.setString(1, "Caelum"); //esse comando vai trocar a primeira ? por 'Caelum' no comando SQL stmt.setString(2, "contato@caelum.com.br"); //esse vai trocar a segunda ? por 'contato@caelum.com.br' no comando SQL stmt.setString(3, "R. Vergueiro 3185 cj57"); //mesca coisa, 3º ? stmt.setDate(4, new java.sql.Date(Calendar.getInstance().getTimeInMillis())); //Mesma coisa, 4ª ?. mas aqui ele seta uma data. // executa stmt.execute(); //esse cara executa o comando no banco de dados. stmt.close(); //fecha o comando compilado System.out.println("Gravado!"); con.close(); //fecha a conexão } }
posta ai o que vc não entendeu.

[]'s

Olhe meu código:

[code]public class Conexao
{
public void criaConeccao(){

    String tabelaContatos = "CREATE TABLE Contatos ( Nome VARCHAR(20), Endereço VARCHAR(50))";
    String nome = "Aldo";
    String endereco = "Rua";
    String insereNaTabela = "insert into Contatos (Nome, Endereço) values (Nome,Endereço)";

    try //A captura de exceções SQLException em Java é obrigatória para usarmos JDBC.
    {

        Class.forName("org.postgresql.Driver");
        System.out.println("Driver carregado");

        Connection con = null;
        con = (Connection) DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/postgres","postgres","admin");
        System.out.println("Conectado");

        PreparedStatement prepstm = null;
 //       prepstm = con.prepareStatement(tabelaContatos);
        prepstm = con.prepareStatement(insereNaTabela);
        prepstm.execute();

    // Registrado o driver, vamos estabelecer uma conexão

    }
    catch (ClassNotFoundException ex)
    {
            Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
    }
    catch(SQLException e)
    {
    // se houve algum erro, uma exceção é gerada para informar o erro
        e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou
    }
}

}[/code]

e o erro:

org.postgresql.util.PSQLException: ERROR: column "nome" does not exist at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:343) at Conexao.criaConeccao(Conexao.java:27) at Main.main(Main.java:6)

Alguém mais tem algumas dicas?

Obg!