Anonymous
Я получил следующую ошибку, когда пытаюсь отправить значения из Java Netbeans в Mysql: Исключение в потоке "AWT-EventQue
Сообщение
Anonymous » 18 дек 2024, 11:59
Я пытаюсь
отправить значения в базу данных в SQl с помощью mysql , но появляется сообщение об ошибке
Исключение в потоке «AWT-EventQueue-0» java.lang.NullPointerException* в строке **stmt.setInt(0, id);
Я уже создал класс Connect и это функция для отправки значений:
Код: Выделить всё
private void enviarMySQL() {
Connect con = new Connect();
con.ConectarBasedeDatos();
String query = "INSERT INTO tablebd (id, producto, cantidad, precio) VALUES (?, ?, ?, ?)";
DefaultTableModel df = (DefaultTableModel) table4.getModel();
for (int i = 0; i < table4.getRowCount(); i++) {
// Getting the values
int id = Integer.parseInt(df.getValueAt(i, 0).toString());
String product = df.getValueAt(i, 1).toString();
double qty = Double.parseDouble(df.getValueAt(i, 2).toString());
double cost= Double.parseDouble(df.getValueAt(i, 3).toString());
// insert values
try {
PreparedStatement stmt = con.conexion.prepareStatement(query);
con.statement.execute("INSERT INTO tablebd (id, product, qty, cost) VALUES(?, ?, ?, ?)");
stmt.setInt(0, id); // first column
stmt.setString(1, product); // first column
stmt.setDouble(2, qty); // second column
stmt.setDouble(3, cost); //
stmt.executeUpdate(); // Ejecutamos la sentencia SQL
// Disconnect database
con.Disconnect();
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, "Error: " + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
Logger.getLogger(Inicio.class.getName()).log(Level.SEVERE, null, e);
}
}
}
и мой класс подключения следующий:
Код: Выделить всё
package App;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class Connect {
public Connection conexion;
public static Statement statement;
public ResultSet resultado;
public void ConectarBasedeDatos(){
try {
final String Controlador = "com.mysql.cj.jdbc.Driver";
Class.forName( Controlador );
final String url_bd = "jdbc:mysql://----------------";
conexion = DriverManager.getConnection(url_bd,"----------","-------");
} catch (ClassNotFoundException | SQLException ex) {
JOptionPane.showMessageDialog(null,ex.getMessage(), "Excepcion", JOptionPane.ERROR_MESSAGE);
}
}
public void DesconectarBasedeDatos() {
try {
if (conexion != null ) {
if(statement != null) {
statement.close();
}
conexion.close();
}
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null,ex.getMessage(), "Excepcion", JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
}
public static void main(String[] args) {
Connect con = new Connect();
con.ConectarBasedeDatos();
}
}
Я пытался изменить значения и смог отправить только это «INSERT INTO tablebd (id, producto, cantidad, precio) VALUES(0,00,00,00); в базу данных< /п>
Подробнее здесь:
https://stackoverflow.com/questions/792 ... -mysql-exc
1734512379
Anonymous
Я пытаюсь [b]отправить значения в базу данных в SQl с помощью mysql[/b], но появляется сообщение об ошибке Исключение в потоке «AWT-EventQueue-0» java.lang.NullPointerException* в строке **stmt.setInt(0, id); Я уже создал класс Connect и это функция для отправки значений: [code]private void enviarMySQL() { Connect con = new Connect(); con.ConectarBasedeDatos(); String query = "INSERT INTO tablebd (id, producto, cantidad, precio) VALUES (?, ?, ?, ?)"; DefaultTableModel df = (DefaultTableModel) table4.getModel(); for (int i = 0; i < table4.getRowCount(); i++) { // Getting the values int id = Integer.parseInt(df.getValueAt(i, 0).toString()); String product = df.getValueAt(i, 1).toString(); double qty = Double.parseDouble(df.getValueAt(i, 2).toString()); double cost= Double.parseDouble(df.getValueAt(i, 3).toString()); // insert values try { PreparedStatement stmt = con.conexion.prepareStatement(query); con.statement.execute("INSERT INTO tablebd (id, product, qty, cost) VALUES(?, ?, ?, ?)"); stmt.setInt(0, id); // first column stmt.setString(1, product); // first column stmt.setDouble(2, qty); // second column stmt.setDouble(3, cost); // stmt.executeUpdate(); // Ejecutamos la sentencia SQL // Disconnect database con.Disconnect(); } catch (SQLException e) { JOptionPane.showMessageDialog(this, "Error: " + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); Logger.getLogger(Inicio.class.getName()).log(Level.SEVERE, null, e); } } } [/code] и мой класс подключения следующий: [code]package App; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JOptionPane; public class Connect { public Connection conexion; public static Statement statement; public ResultSet resultado; public void ConectarBasedeDatos(){ try { final String Controlador = "com.mysql.cj.jdbc.Driver"; Class.forName( Controlador ); final String url_bd = "jdbc:mysql://----------------"; conexion = DriverManager.getConnection(url_bd,"----------","-------"); } catch (ClassNotFoundException | SQLException ex) { JOptionPane.showMessageDialog(null,ex.getMessage(), "Excepcion", JOptionPane.ERROR_MESSAGE); } } public void DesconectarBasedeDatos() { try { if (conexion != null ) { if(statement != null) { statement.close(); } conexion.close(); } } catch (SQLException ex) { JOptionPane.showMessageDialog(null,ex.getMessage(), "Excepcion", JOptionPane.ERROR_MESSAGE); System.exit(1); } } public static void main(String[] args) { Connect con = new Connect(); con.ConectarBasedeDatos(); } } [/code] Я пытался изменить значения и смог отправить только это «INSERT INTO tablebd (id, producto, cantidad, precio) VALUES(0,00,00,00); в базу данных< /п> Подробнее здесь: [url]https://stackoverflow.com/questions/79289630/i-got-the-next-error-when-i-try-to-send-values-from-java-netbeans-to-mysql-exc[/url]