olá galera preciso de ajuda pq estou começando uma nova matéria na disciplina de programação que envolve java e banco de dados. então a principal função do meu programa é fazer um CRUD = create, read, update e delete no banco de dados com o java. E ainda com JOptionPane
para progrmar eu uso Sublime Text 3 e para o banco de dados o MySqlWorkbench
na linha 104 e 105 foi minha tentativa de fazer com que o usuário insira ele mesmo os dados assim como quero com o resto do programa.
import javax.swing.JOptionPane;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import java.util.List;
import java.util.ArrayList;
import java.util.Properties;
import java.util.Calendar;
import java.time.LocalDateTime;
import java.text.SimpleDateFormat;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.lang.ArrayIndexOutOfBoundsException;
public class DataAccess
{
public static void Menu()
{
String[] operacaoTabela = {“Criar Tabela”, “Inserir Dados”, “Listar”, “Atualizar Dados”, “Deletar”};
JComboBox operacoes = new JComboBox(operacaoTabela);
JOptionPane.showOptionDialog(null, operacoes, “Selecione uma ação para realizar:”,
JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);
if(operacoes.getSelectedItem().toString() == "Criar Tabela")
{
CriarTabela(null);
}
if(operacoes.getSelectedItem().toString() == "Inserir Dados")
{
Inserir(null);
}
if(operacoes.getSelectedItem().toString() == "Listar")
{
Listar();
}
if(operacoes.getSelectedItem().toString() == "Atualizar Dados")
{
Atualizar();
}
if(operacoes.getSelectedItem().toString() == "Deletar")
{
Deletar();
}
}
public static void CriarTabela(String descricaoProduto)
{
Connection conexao = null;
Properties propriedades = new Properties();
propriedades.put("user", "root");
propriedades.put("password", "root");
try{
String driverName = "com.mysql.jdbc.Driver";
Class classe = Class.forName("com.mysql.jdbc.Driver");
classe.newInstance();
conexao = DriverManager.getConnection("jdbc:mysql://127.0.0.1?useSSL=false", propriedades);
JOptionPane.showInputDialog(null, "Informe o nome da tabela a ser criada: ", JOptionPane.QUESTION_MESSAGE);
JOptionPane.showInputDialog(null, "Informe os atributos da respectiva tabela: ", JOptionPane.QUESTION_MESSAGE);
Statement consulta = conexao.createStatement();
consulta.execute("USE gestao_produtos; CREATE TABLE PRODUTO(PROD_DC_PRODUTO, PROD_DT_CADASTRO) VALUES ('" + descricaoProduto + "', '" + LocalDateTime.now() + "')");
}
catch (SQLException excecaoSql)
{
System.out.println(excecaoSql);
}
catch (Exception excecao)
{
System.out.println(excecao);
}
}
public static void Inserir(String descricaoProduto)
{
Connection conexao = null;
Properties propriedades = new Properties();
propriedades.put("user", "root");
propriedades.put("password", "root");
try{
Class classe = Class.forName("com.mysql.jdbc.Driver");
classe.newInstance();
conexao = DriverManager.getConnection("jdbc:mysql://127.0.0.1/gestao_produtos?useSSL=false", propriedades);
Statement consulta = conexao.createStatement();
//String sql = "INSERT INTO my_table (col_string) VALUES('a string')";
//consulta.executeUpdate(sql); // essas duas linhas fazem o mesmo q a 105
String sqlinsert = "insert into PRODUTO (PROD_DC_PRODUTO, PROD_DT_CADASTRO) VALUES ("(?, +LocalDateTime.now() + ")";
consulta.executeUpdate(sqlinsert);
}
catch (SQLException excecaoSql)
{
System.out.println(excecaoSql);
}
catch (Exception excecao)
{
System.out.println(excecao);
}
}
public static void Listar()
{
Connection conexao = null;
Properties propriedades = new Properties();
propriedades.put("user", "root");
propriedades.put("password", "root");
try
{
Class classe = Class.forName("com.mysql.jdbc.Driver");
classe.newInstance();
conexao = DriverManager.getConnection("jdbc:mysql://127.0.0.1/gestao_produtos?useSSL=false", propriedades);
Statement consulta = conexao.createStatement();
ResultSet conjuntoDados = consulta.executeQuery("SELECT * FROM PRODUTO");
while (conjuntoDados.next())
System.out.println(conjuntoDados.getString(1) + "\t\t\t" + conjuntoDados.getString(2) + "\t\t" + conjuntoDados.getString(3));
}
catch (SQLException excecaoSql)
{
System.out.println(excecaoSql);
}
catch (Exception excecao)
{
System.out.println(excecao);
}
}
public static void Salvar(String descricaoProduto)
{
Connection conexao = null;
Properties propriedades = new Properties();
propriedades.put("user", "root");
propriedades.put("password", "root");
try
{
Class classe = Class.forName("com.mysql.jdbc.Driver");
classe.newInstance();
conexao = DriverManager.getConnection("jdbc:mysql://127.0.0.1/gestao_produtos?useSSL=false", propriedades);
Statement consulta = conexao.createStatement();
consulta.execute("INSERT INTO PRODUTO (PROD_DC_PRODUTO, PROD_DT_CADASTRO) VALUES ('" + descricaoProduto + "', '" + LocalDateTime.now() + "')");
//System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()));
//consulta.execute("UPDATE PRODUTO SET PROD_DC_PRODUTO = 'Farinha Láctea' WHERE PROD_ID_PRODUTO = 8 ");
//consulta.execute("DELETE FROM PRODUTO WHERE PROD_ID_PRODUTO IN (2, 3, 4, 5)");
//consulta.execute("DELETE FROM PRODUTO");
}
catch (SQLException excecaoSql)
{
System.out.println(excecaoSql);
}
catch (Exception excecao)
{
System.out.println(excecao);
}
}
public static void Atualizar()
{
Connection conexao = null;
Properties propriedades = new Properties();
propriedades.put("user", "root");
propriedades.put("password", "root");
try
{
Class classe = Class.forName("com.mysql.jdbc.Driver");
classe.newInstance();
conexao = DriverManager.getConnection("jdbc:mysql://127.0.0.1/gestao_produtos?useSSL=false", propriedades);
Statement consulta = conexao.createStatement();
consulta.execute("UPDATE PRODUTO SET PROD_DC_PRODUTO = 'Farinha Lactea' WHERE PROD_ID_PRODUTO = 8 ");
}
catch (SQLException excecaoSql)
{
System.out.println(excecaoSql);
}
catch (Exception excecao)
{
System.out.println(excecao);
}
}
public static void Deletar()
{
Connection conexao = null;
Properties propriedades = new Properties();
propriedades.put("user", "root");
propriedades.put("password", "root");
try
{
Class classe = Class.forName("com.mysql.jdbc.Driver");
classe.newInstance();
conexao = DriverManager.getConnection("jdbc:mysql://127.0.0.1/gestao_produtos?useSSL=false", propriedades);
Statement consulta = conexao.createStatement();
consulta.execute("DELETE FROM PRODUTO WHERE PROD_ID_PRODUTO IN (2, 3, 4, 5)");
}
catch (SQLException excecaoSql)
{
System.out.println(excecaoSql);
}
catch (Exception excecao)
{
System.out.println(excecao);
}
}
public static void main(String[] args)
{
Menu();
}
}