java - 我无法在我的表中或 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()); 行中设置了断点
并打印它,但没有错误消息,断点似乎也没有任何作用......
再次感谢您的帮助,如果错误看起来很明显,我很抱歉,我仍然是编码世界的新手!
解决方案
好的。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)
为什么你在这里得到空值。
推荐阅读
- javascript - 是否可以在 React 中创建自定义事件?
- json - 如何在python中将字典附加到json文件
- react-native-android - 无法在反应本机平面列表android中显示图像
- python-3.x - 通过 Jenkins 运行机器人测试用例时出现“失败:数据源不存在”
- php - 从数据库打印数据(白页)
- vue.js - vuejs beforeRouteEnter。如果用户已登录,则禁用转到 url
- python - 在 python3 中初始化类属性的最佳方法是什么?
- c# - 网格视图未显示第一行 ASP.NET、C# Sql 服务器
- python - 在 keras 中预测时索引超出范围
- uwp - 防止加载控件后面的键盘选项卡