No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Java SE: SQL y Bases de Datos

Curso de Java SE: SQL y Bases de Datos

Ana Fernanda Gutierrez Villanueva

Ana Fernanda Gutierrez Villanueva

Leer y crear datos con JDBC

5/22
Recursos

Aportes 12

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

La base de datos de la profe donde la puedo conseguir para seguir los pasos que ella realiza?

Resultado exitoso al actualizar un dato. Adicionalmente añadí en MySQL una nueva columna:

Y ya nadamas se pasan los valores dentro del Strign! que genial!

\-- Se crea una base de datos llamada "project" si no existe. CREATE DATABASE IF not EXISTS project; \-- Se selecciona la base de datos "project" para utilizarla. USE project; \-- Si existe una tabla llamada "employees", se elimina. DROP TABLE IF EXISTS employees; \-- Se crea la tabla "employees" con las columnas id, first\_name, pa\_surname, ma\_surname, email y salary, y se establece id como clave primaria. CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO\_INCREMENT, `first\_name` varchar(64) DEFAULT NULL, `pa\_surname` varchar(64) DEFAULT NULL, `ma\_surname` varchar(64) DEFAULT NULL, `email` varchar(64) DEFAULT NULL, `salary` DECIMAL(10,2) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO\_INCREMENT=1 DEFAULT CHARSET=latin1; \-- Se insertan cinco filas en la tabla "employees" con diferentes valores para cada columna. INSERT INTO `employees` (`first\_name`, `pa\_surname`, `ma\_surname`, `email`, `salary`) VALUES ('John', 'Doe', 'Smith', '[email protected]', 50000.00); INSERT INTO `employees` (`first\_name`, `pa\_surname`, `ma\_surname`, `email`, `salary`) VALUES ('Jane', 'Smith', 'Johnson', '[email protected]', 60000.00); INSERT INTO `employees` (`first\_name`, `pa\_surname`, `ma\_surname`, `email`, `salary`) VALUES ('Michael', 'Johnson', 'Brown', '[email protected]', 55000.00); INSERT INTO `employees` (`first\_name`, `pa\_surname`, `ma\_surname`, `email`, `salary`) VALUES ('Emily', 'Brown', 'Davis', '[email protected]', 52000.00); INSERT INTO `employees` (`first\_name`, `pa\_surname`, `ma\_surname`, `email`, `salary`) VALUES ('David', 'Davis', 'Wilson', '[email protected]', 58000.00);
![](https://assets-global.website-files.com/5d38d9fb60cb4c6765e105aa/6361b6fb2da975d7843dba63_ahora-si.gif)
Creo que los pasos de la diapositiva correspondian al anterior codigo xq `Statement` y `ResultSet` no los usamos ya que no hicimos una consulta, en su lugar hicimos un INSERT y usamos `PreparedStatement`.
Este es un curso: EXCELENTE.
Yo creé mi propia base de datos, con las tablas. Y recorrí los datos de esta forma distinta. Connection conector; try{ conector= DriverManager.*getConnection*("jdbc:mysql://localhost:3306/supermercado","root","1234"); System.*out*.println("Conectados"); Statement st =conector.createStatement(); String query = "SELECT id\_Categoria, nombre, descripcion from categorias"; ResultSet resultados=st.executeQuery(query); while(resultados.next()){ System.*out*.print(resultados.getInt(1)); System.*out*.println("-"); System.*out*.println(resultados.getString("nombre")); System.*out*.println("-"); System.*out*.println(resultados.getString(3)); } }catch (SQLException e){ e.printStackTrace(); } Se puede leer tanto poniendo el numero en la posicion en la que se encuentra el dato, como poniendo su nombre.
ALGUINE TIENE ESTE ERROR ? java.sql.SQLException: Field 'id' doesn't have a default value at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1054) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1003) at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1312) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:988) at Main.main(Main.java:26) MY CODIGO: `import java.sql.*;` `public class Main {` ` public static void main(String[] args) {` ` ` ` Connection myConn = null;` ` PreparedStatement myStamt = null;` ` ` ` try {` ` myConn = DriverManager.``getConnection``("jdbc:mysql://localhost:3306/lilproject", "root", "NicoliCaeli1@");` ` System.``out``.println("APOLO 13!"); ` ` String sql =("INSERT INTO employees (first_name, pa_surname) VALUES (?, ?)");` ` myStamt = myConn.prepareStatement(sql);` ` myStamt.setString(1, "Simona");` ` myStamt.setString(2, "Lamona");` ` int rowsAffected = myStamt.executeUpdate();` ` ` ` if (rowsAffected>0){` ` System.``out``.println("A new customer has been created");` ` }` ` } catch (SQLException e) {` ` e.printStackTrace();` ` System.``out``.println("queeeeee ya wei!!!");` ` }` ` }` `}`
Dando un pequeño aporte: Statment y PrepareStetement son similares en su trabajo, ambas sirven para hacer consultas a una base de datos. * La diferencia radica en que Statement debes usarla si solo vas a hacer una consulta después de instanciarla y PrepareStatement se usa para hacer consultas de forma dinámica. * **Statement** es una interfaz estatica, en otras palabras cada vez que la usas se debe compilar. * **PreparedStatement** es una interfaz utilizada para ejecutar una instrucción SQL precompilada, lo que puede llevar a un rendimiento más eficiente, especialmente cuando planeas ejecutar la misma consulta varias veces. * Si vas a ejecutar una misma consulta múltiples veces como insertar datos usa **PreparedStatement** y si solo deseas ejecutar una sola vez la consulta como ver los datos de un campo como los nombres usa **Statement**
Estoy utilizando mi propia bd en mysql 5.1.42, que me esta dando dolor de cabeza pero se esta saliendo jj
aquí las instrucciones para crear la base de datos : \-- Se crea una base de datos llamada "project" si no existe. CREATE DATABASE IF not EXISTS project; \-- Se selecciona la base de datos "project" para utilizarla. USE project; \-- Si existe una tabla llamada "employees", se elimina. DROP TABLE IF EXISTS employees; \-- Se crea la tabla "employees" con las columnas id, first\_name, pa\_surname, ma\_surname, email y salary, y se establece id como clave primaria. CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO\_INCREMENT, `first\_name` varchar(64) DEFAULT NULL, `pa\_surname` varchar(64) DEFAULT NULL, `ma\_surname` varchar(64) DEFAULT NULL, `email` varchar(64) DEFAULT NULL, `salary` DECIMAL(10,2) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO\_INCREMENT=1 DEFAULT CHARSET=latin1; \-- Se insertan cinco filas en la tabla "employees" con diferentes valores para cada columna. INSERT INTO `employees` (`first\_name`, `pa\_surname`, `ma\_surname`, `email`, `salary`) VALUES ('John', 'Doe', 'Smith', '[email protected]', 50000.00); INSERT INTO `employees` (`first\_name`, `pa\_surname`, `ma\_surname`, `email`, `salary`) VALUES ('Jane', 'Smith', 'Johnson', '[email protected]', 60000.00); INSERT INTO `employees` (`first\_name`, `pa\_surname`, `ma\_surname`, `email`, `salary`) VALUES ('Michael', 'Johnson', 'Brown', '[email protected]', 55000.00); INSERT INTO `employees` (`first\_name`, `pa\_surname`, `ma\_surname`, `email`, `salary`) VALUES ('Emily', 'Brown', 'Davis', '[email protected]', 52000.00); INSERT INTO `employees` (`first\_name`, `pa\_surname`, `ma\_surname`, `email`, `salary`) VALUES ('David', 'Davis', 'Wilson', '[email protected]', 58000.00);