I'm having a lot of problems to successfully insert my program data into the table in my database.
To connect to MySQL , I have this:
import java.sql.*;
public class ConexionBD {
// Ruta de nuestra base de datos
private String servidor = "jdbc:mysql://localhost:3306/centralitabd";
// Nombre de usuario de mysql
private String username = "root";
// Clave de usuario de mysql
private String password = "123456789";
// Nuestra librería mysql
private String driver = "com.mysql.jdbc.Driver";
// Objeto del tipo Connection para crear la conexión
private Connection con;
public void Conexion()
{
try {
// Cargar drivers de MySQL
Class.forName(driver);
// Establecer la conexion con la base de datos
con = DriverManager.getConnection(servidor, username, password);
System.out.println("Conexión realizada a la base de datos con éxito.");
} catch (ClassNotFoundException | SQLException e) {
System.out.println("Error!, conexión fallida a la base de datos.");
}
}
public Connection getConnection() {
return con; // Retorno el objeto Connection
}
Many say that I use preparedstatement
, others say that it is better createstatement
, in the end I have not managed to make any work, here my code:
public void Insertar(int ID, String Tipo, String Franja, String NumeroOrigen, String NumeroDestino, int Duracion, Double Precio) {
// Establecer conexión con la base de datos
ConexionBD conexion = new ConexionBD();
// Pasamos el objeto Connection de nuestra clase "ConexionBD" a esta instancia por medio del método getConnection()
Connection con = conexion.getConnection();
// Crear sentencia SQL para insertar en la base de datos
String query = "INSERT INTO llamadas (ID, Tipo, Franja, NumeroOrigen, NumeroDestino, Duracion, Precio) values (?, ?, ?, ?, ?, ?, ?)";
try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(query);
rs.setInt (1, ID);
rs.setString (2, Tipo);
rs.setString (3, Franja);
rs.setString (4, NumeroOrigen);
rs.setString (5, NumeroDestino);
rs.setInt (6, Duracion);
rs.setDouble (7, Precio);
// Indicamos que comience la actualización de la tabla en nuestra base de datos
st.executeUpdate();
// Cerramos las conexiones, en orden inverso a su apertura
st.close();
con.close();
System.out.println("Llamada agregada con éxito a la base de datos.");
} catch (SQLException e) {
System.out.println("Error!, la llamada no pudo ser agregada a la base de datos.");
}
}
Mark me error in:
setInt
, setString
, executeUpdate
, etc.
What am I wrong?
Any help would be welcome.