首页 > 解决方案 > 我无法在我的表中或 phpmyadmin 上可视化列“特征”

问题描述

我是这个网站的新手我的问题是,一旦我将所有信息移到表格中以进入其每一列,每一个都添加但不是我的“特征”列,并且它也不会出现在 phpmyadmin

框架习惯

import Datos.vhabitacion;
import Logica.fhabitacion;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class FrmHabitacion extends javax.swing.JFrame {
public FrmHabitacion() {
    initComponents();
    mostrar("");
    inhabilitar();
}

private String accion = "guardar";

    // instancias
    vhabitacion dts = new vhabitacion();
    fhabitacion func = new fhabitacion();

    dts.setNum_hab(txtnumero.getText());

    int seleccionado = cbopiso.getSelectedIndex();
    dts.setPiso_hab((String) cbopiso.getItemAt(seleccionado));

    dts.setDescripción_hab(txtdescripcion.getText());

我相信错误出现在这一行,因为我在线程“AWT-EventQueue-0”java.lang.NullPointerException 中收到错误异常。

    dts.setCaracteristicas_hab(txtcaracteristicas.getText());

我知道这可能很愚蠢,但我似乎找不到错误

    //string to double
    dts.setPrecio_noche(Double.parseDouble(txtprecio_diario.getText()));

    seleccionado = cboestado.getSelectedIndex();
    dts.setEstado_hab((String) cboestado.getItemAt(seleccionado));

    seleccionado = cbotipo_habitacion.getSelectedIndex();
    dts.setTipo_hab((String) cbotipo_habitacion.getItemAt(seleccionado));

    if (accion.equals("guardar")) {
        if (func.insertar(dts)) {
            JOptionPane.showMessageDialog(rootPane, "La habitación fue registrada satisfactoriamente" );
            //mostrar todos los registros
            mostrar("");
            inhabilitar();
        }

    }else if(accion.equals("editar")){
        dts.setIdhabitacion(Integer.parseInt(txtidhabitacion.getText()));

        if (func.editar(dts)) {
            JOptionPane.showMessageDialog(rootPane, "La habitación fue editada satisfactoriamente" );
            mostrar("");
            inhabilitar();
        } 
    }

**btnDelete**
  if (!txtidhabitacion.getText().equals("")) {
        int confirmacion = JOptionPane.showConfirmDialog(rootPane, "Estás seguro de eliminar la habitación?", "Confirmar", 2);

        if (confirmacion == 0) {
            fhabitacion func = new fhabitacion();
            vhabitacion dts = new vhabitacion();

            dts.setIdhabitacion(Integer.parseInt(txtidhabitacion.getText()));
            func.eliminar(dts);
            mostrar("");
            inhabilitar();
        }


    }

private void tablalistadoMouseClicked(java.awt.event.MouseEvent evt) {                                          
    btnguardar.setText("Editar");
    habilitar();
    btneliminar.setEnabled(true);
    accion = "editar";

    int fila = tablalistado.rowAtPoint(evt.getPoint());

    txtidhabitacion.setText(tablalistado.getValueAt(fila, 0).toString());
    txtnumero.setText(tablalistado.getValueAt(fila, 1).toString());

    cbopiso.setSelectedItem(tablalistado.getValueAt(fila, 2).toString());
    txtdescripcion.setText(tablalistado.getValueAt(fila, 3).toString());
    //error
    txtcaracteristicas.setText(tablalistado.getValueAt(fila,4).toString());
    //txtcaracteristicas.setText(tablalistado.getValueAt(fila, 4).toString());
    txtprecio_diario.setText(tablalistado.getValueAt(fila, 5).toString());

    cboestado.setSelectedItem(tablalistado.getValueAt(fila, 6).toString());
    cbotipo_habitacion.setSelectedItem(tablalistado.getValueAt(fila, 7).toString());

}



    } catch (ClassNotFoundException | SQLException e) {
        JOptionPane.showMessageDialog(null, e);
    }
    return link;
}

}

栖息地

public class vhabitacion {
private int idhabitacion;
private String num_hab;
private String piso_hab;
private String descripción_hab;
private String caracteristica_lab;
private Double precio_noche;
private String estado_hab;
private String tipo_hab;

public vhabitacion(int idhabitacion, String num_hab, String piso_hab, String descripción_hab, String caracteristica_lab, Double precio_noche, String estado_hab, String tipo_hab) {
    this.idhabitacion = idhabitacion;
    this.num_hab = num_hab;
    this.piso_hab = piso_hab;
    this.descripción_hab = descripción_hab;
    this.caracteristica_lab = caracteristica_lab;
    this.precio_noche = precio_noche;
    this.estado_hab = estado_hab;
    this.tipo_hab = tipo_hab;
}

public vhabitacion() {
}

public int getIdhabitacion() {
    return idhabitacion;
}

public void setIdhabitacion(int idhabitacion) {
    this.idhabitacion = idhabitacion;
}

public String getNum_hab() {
    return num_hab;
}

public void setNum_hab(String num_hab) {
    this.num_hab = num_hab;
}

public String getPiso_hab() {
    return piso_hab;
}

public void setPiso_hab(String piso_hab) {
    this.piso_hab = piso_hab;
}

public String getDescripción_hab() {
    return descripción_hab;
}

public void setDescripción_hab(String descripción_hab) {
    this.descripción_hab = descripción_hab;
}

public String getCaracteristicas_hab() {
    return caracteristica_lab;
}

public void setCaracteristicas_hab(String caracteristicas_hab) {
    this.caracteristica_lab = caracteristica_lab;
}

public Double getPrecio_noche() {
    return precio_noche;
}

public void setPrecio_noche(Double precio_noche) {
    this.precio_noche = precio_noche;
}

public String getEstado_hab() {
    return estado_hab;
}

public void setEstado_hab(String estado_hab) {
    this.estado_hab = estado_hab;
}

public String getTipo_hab() {
    return tipo_hab;
}

public void setTipo_hab(String tipo_hab) {
    this.tipo_hab = tipo_hab;
}

习惯

 public class fhabitacion {

private conexion mysql = new conexion();
private Connection cn = mysql.conectar();
//almacenar cadena de conexión
private String sSQL ="";
public Integer totalregistros;

//mostrar registros base de datos: habitación
public DefaultTableModel mostrar(String buscar){
    DefaultTableModel modelo;

    //vector para guardar título
    String [] titulos = {"ID", "Número", "Piso", "Descripción", "Caracteristica", "Precio", "Estado", "Tipo de habitación"};

    //array para almacenar registros de cada uno de los títulos
    String [] registro = new String[8];


    totalregistros = 0;
    modelo = new DefaultTableModel(null, titulos);

    sSQL="select * from habitacion where piso_hab like '%"+ buscar + "%' order by idhabitacion";
    //System.out.println(sSQL);

    try {
        Statement st = cn.createStatement();
        //ejecutar statement
        ResultSet rs = st.executeQuery(sSQL);

        //navegación de todos los registros
        while(rs.next()){
            registro [0] = rs.getString("idhabitacion");
            registro [1] = rs.getString("num_hab");
            registro [2] = rs.getString("piso_hab");
            registro [3] = rs.getString("descripción_hab");
            registro [4] = rs.getString("caracteristica_lab");
            registro [5] = rs.getString("precio_noche");
            registro [6] = rs.getString("estado_hab");
            registro [7] = rs.getString("tipo_hab");

            totalregistros = totalregistros + 1;
            modelo.addRow(registro);
        }
        return modelo;
    } catch (Exception e) {
        JOptionPane.showConfirmDialog(null, e);
        return null;
    }

}

public boolean insertar(vhabitacion dts){
    sSQL = "insert into habitacion(num_hab,piso_hab,descripción_hab,caracteristica_lab,precio_noche,estado_hab,tipo_hab) values (?,?,?,?,?,?,?)";
    try {
        PreparedStatement pst = cn.prepareStatement(sSQL);
        pst.setString(1, dts.getNum_hab());
        pst.setString(2, dts.getPiso_hab());
        pst.setString(3, dts.getDescripción_hab());
        pst.setString(4, dts.getCaracteristicas_hab());
        pst.setDouble(5, dts.getPrecio_noche());
        pst.setString(6, dts.getEstado_hab());
        pst.setString(7, dts.getTipo_hab());

        int n = pst.executeUpdate();

        if(n != 0){
            return true;

        }else{
            return false;
        }


    } catch (Exception e) {
        JOptionPane.showConfirmDialog(null, e);
        return false;
    } 
}

public boolean editar(vhabitacion dts){
    sSQL = "update habitacion set num_hab=?,piso_hab=?,descripción_hab=?,caracteristica_lab=?,precio_noche=?,estado_hab=?,tipo_hab=? where idhabitacion=?";

    try {
        PreparedStatement pst = cn.prepareStatement(sSQL);
        pst.setString(1, dts.getNum_hab());
        pst.setString(2, dts.getPiso_hab());
        pst.setString(3, dts.getDescripción_hab());
        pst.setString(4, dts.getCaracteristicas_hab());
        pst.setDouble(5, dts.getPrecio_noche());
        pst.setString(6, dts.getEstado_hab());
        pst.setString(7, dts.getTipo_hab());
        pst.setInt(8, dts.getIdhabitacion());

        int n = pst.executeUpdate();

        if(n != 0){
            return true;

        }else{
            return false;
        }

    } catch (Exception e) {
        JOptionPane.showConfirmDialog(null, e);
        return false;
    }

}

public boolean eliminar(vhabitacion dts){
    sSQL="delete from habitacion where idhabitacion=?";
    try {
        PreparedStatement pst = cn.prepareStatement(sSQL);

        pst.setInt(1, dts.getIdhabitacion());

        int n = pst.executeUpdate();

        if(n != 0){
            return true;

        }else{
            return false;
        }


    } catch (Exception e) {
        JOptionPane.showConfirmDialog(null, e);
        return false;
    }


}


}

每一栏都满了,除了特征栏,虽然我也完成了那部分

特征无法可视化

也不在这里 任何帮助将不胜感激!

编辑:我在 pst.setString(4, dts.getCaracteristicas_hab()); 行中设置了断点

并打印它,但没有错误消息,断点似乎也没有任何作用......

没有反馈

再次感谢您的帮助,如果错误看起来很明显,我很抱歉,我仍然是编码世界的新手!

标签: javanetbeansphpmyadmin

解决方案


好的。dts.setCaracteristicas_hab(txtcaracteristicas.getText());您是否从这里正确获取数据?您需要断点以查看是否从此处获取正确的数据。如果不在您的插入中将是一个空值

sSQL = "insert into habitacion(num_hab,piso_hab,descripción_hab,caracteristica_lab,precio_noche,estado_hab,tipo_hab) values (?,?,?,?,?,?,?)";
    try {
        PreparedStatement pst = cn.prepareStatement(sSQL);
        pst.setString(1, dts.getNum_hab());
        pst.setString(2, dts.getPiso_hab());
        pst.setString(3, dts.getDescripción_hab());
        pst.setString(4, dts.getCaracteristicas_hab()); // Breakpoint here and see that was settet correctly the Caractersticas if not is null.

检查您的代码

txtcaracteristicas.setText(tablalistado.getValueAt(fila,4).toString());

在这里你得到一个空值。影响对象中的保存和数据库的保存也是如此。所以检查一下tablalistado.getValueAt(fila,4)为什么你在这里得到空值。


推荐阅读