es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo establecer/usar la entrada en el JTextField como el nombre de la tabla que se creará en la base de datos?

Aunque todavía soy nuevo en jdbc, pude crear una nueva tabla en la base de datos al hacer clic en el JButton, su código está comentado. Pero lo que necesito hacer es tomar la entrada del usuario en el Jtextfield y establecerla como el nombre de la tabla que se creará en la base de datos. Necesito ayuda por favor.

NameT = new JTextField();
JButton SaveB = new JButton("Guardar");
SaveB.setFocusable(false);
SaveB.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {  
        try{
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sample","root","");
           String input = NameT.getText();
        // String sql="CREATE TABLE sample.English AS SELECT * FROM subject;"; 
           String sql="CREATE TABLE sample.'"+input+"' AS SELECT * FROM subject;"; 
           PreparedStatement ptst = conn.prepareStatement(sql); ptst.executeUpdate(); 
           JOptionPane.showMessageDialog(null, "datos almacenados exitosamente");
            conn.close();
            }
            catch(Exception e1){
                JOptionPane.showMessageDialog(null, "No se almacenaron los datos exitosamente");
            }
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para capturar la entrada del usuario en el JTextField y establecerlo como el nombre de la tabla que se creará en la base de datos, debes modificar el código en el método actionPerformed del JButton SaveB de la siguiente manera:

    1. Obtén el texto ingresado en el JTextField NameT utilizando el método getText() y guárdalo en una variable de tipo String llamada input.
    2. Modifica la declaración SQL para incluir el valor de la variable input en lugar de un nombre de tabla codificado.
    3. Ejecuta la declaración SQL utilizando un objeto PreparedStatement.

    El código modificado debería verse así:

    SaveB.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    try{
    Class.forName(“com.mysql.cj.jdbc.Driver”);
    Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/sample”,”root”,””);
    String input = NameT.getText();
    String sql=”CREATE TABLE sample." + input +" AS SELECT * FROM subject”;
    PreparedStatement ptst = conn.prepareStatement(sql);
    ptst.executeUpdate();
    JOptionPane.showMessageDialog(null, “Tabla creada exitosamente”);
    conn.close();
    }
    catch(Exception e1){
    JOptionPane.showMessageDialog(null, “Error al crear la tabla”);
    }
    }
    });

    Nota: Asegúrate de incluir acentos graves (`) alrededor del nombre de la tabla si contiene caracteres especiales o espacios.

Comments are closed.