我无法在我的表中或 phpmyadmin 上可视化列“特征”
Posted
技术标签:
【中文标题】我无法在我的表中或 phpmyadmin 上可视化列“特征”【英文标题】:I can't visualize the column "characteristics" in my table nor on phpmyadmin 【发布时间】:2018-11-30 01:51:30 【问题描述】:我是这个网站的新手 我的问题是,一旦我将所有信息移到表格中以进入其每一列,这些信息中的每一个都会添加但不是我的“特征”列,并且它也不会出现在 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;
每一栏都满了,除了特征栏,虽然我也完成了那部分
Characteristics can't be visualized
nor here 任何帮助将不胜感激!
编辑: 我在行中设置了断点 pst.setString(4, dts.getCaracteristicas_hab());
并打印它,但没有错误消息,断点似乎也没有任何作用......
there's no feedback
再次感谢您的帮助,如果错误看起来很明显,我很抱歉,我还是编码世界的新手!
【问题讨论】:
你能提供一个minimal reproducible example吗?我认为可以从您的帖子中删除大量代码。 这里有很多信息,]。你想要什么?哪里失败了? @Gatusko 我无法将特征字段保存在我的表中,也无法保存在 phpmyadmin 中。我似乎找不到错误, 【参考方案1】:好的。 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)
,看看为什么你在这里得到空值。
【讨论】:
很抱歉打扰您,您能再检查一下我的编辑吗? tablalistado.getValueAt(fila,4).toString() 你能打印一下吗?如果是你想要的输出 你的意思是这样吗? System.out.print(tablalistado.getValueAt(fila, 4).toString());? 我建议使用断点,但到目前为止尝试一下,看看是否是所需的输出。以上是关于我无法在我的表中或 phpmyadmin 上可视化列“特征”的主要内容,如果未能解决你的问题,请参考以下文章
将 phpMyAdmin 连接到 MySQL Workbench