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

Conectando Java con bases de datos

4/22
Recursos

Descargar conector MySQL para Java:

Untitled.png

File > Project Structure > Dependencies > JARs

  • Error en zona horaria: En la conexión agregar ?serverTimezone=UTC
  1. Declaración de variables: Se declara una variable myConn del tipo Connection y se inicializa con el valor null. Esta variable se utilizará para establecer y mantener la conexión con la base de datos.

  2. Bloque try-catch: El código envuelve el bloque de código que intenta establecer la conexión con la base de datos dentro de un bloque try-catch. Esto permite capturar y manejar posibles excepciones que puedan ocurrir durante la conexión.

  3. Establecimiento de la conexión: Dentro del bloque try, se utiliza el método getConnection de la clase DriverManager para establecer la conexión a la base de datos MySQL. Los argumentos proporcionados al método son la URL de conexión (jdbc:mysql://localhost:3306/nombre de tu proyecto), el nombre de usuario (root) y la contraseña.

Aportes 48

Preguntas 5

Ordenar por:

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

La profe dejó la base de datos en un comentario, para aquellos que no la encontraron aquí la dejo:

-- 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);

Finalmente éxito!
Al principio me generó el error de Driver. Pero me fijé que me faltaron los ‘:’ en la URL. Lo correcto:
“jdbc:mysql://localhost:3306/tu_BD”

Falta un video explicativo en donde se cree la base de datos en MySQL, porque se asume que se sabe como hacerlo, para los que tengan problema con esto, deben descargar el archivo ejecutable de MySQL, despues de la instalacion verificar que si aparezca en los servicios del computador e iniciar el servicio si esta apagado, verificar tambien que MySQL se encuentre en las variables de entorno del pc y finalmente deben crear la base de datos que lo pueden hacer desde la consola entrando en la ubicacion del ejecutable de MySQL que esta en la carpeta bin, ejecutar el comando:

mysql -u root -p

Este comando les pedira de inmediato la contraseña que pusieron en la instalacion de MySQL para root, despues de introducirla les dara acceso a la terminal de MySQL y crean la base de datos que desean asi:

create database nombre_que_elijas;

Se creara tu base de datos, debes entrar a la base de datos que creastea asi:

use nombre_de_tu_basededatos

adicional puedes crear una tabla con el comando:

create table nombre_que_elijas

con esto ya puedes continuar con el proyecto

MySQL es un sistema de gestión de bases de datos muy utilizado y es relativamente fácil de instalar. Sigue estos pasos:
Descarga MySQL Installer:

Visita el sitio web oficial de MySQL para descargar el instalador: Descargar MySQL Installer.

Selecciona la versión adecuada:

Descarga la última versión de MySQL Installer para Windows (por lo general, la que está en la parte superior de la lista).
Puedes optar por la versión de instalador web (Online) o la versión completa (Offline). La versión web descargará los componentes a medida que los necesites, mientras que la versión completa ya los incluirá en la descarga.
Ejecuta el Instalador:
Una vez que se haya descargado el instalador, ejecútalo haciendo doble clic en el archivo descargado (por ejemplo, mysql-installer-web-community-xxx.xxx.xxx.xxx.msi).

Selección de Productos:

Aparecerá una ventana que te permitirá seleccionar los productos a instalar. Para la mayoría de los casos, elige “MySQL Server” y, si lo deseas, puedes seleccionar otros componentes como MySQL Workbench (una herramienta de administración).

Descargar Componentes:

Si elegiste la versión web del instalador, comenzará a descargar los componentes seleccionados. Esto puede llevar un tiempo, así que ten paciencia.

Configuración de MySQL Server:

Durante la instalación, se te pedirá que configures MySQL Server. Puedes elegir la configuración por defecto, que suele ser suficiente para la mayoría de los usuarios, o personalizarla según tus necesidades.

Establecer Contraseña de Root:

Durante la instalación, se te pedirá que establezcas una contraseña para el usuario “root” de MySQL. Asegúrate de recordar esta contraseña, ya que la necesitarás para administrar MySQL.

Completar la Instalación:

Una vez que se completen todos los pasos de configuración, haz clic en “Execute” (Ejecutar) para que la instalación continúe. Luego, haz clic en “Finish” (Finalizar) para completar la instalación.

Verifica la Instalación:

Puedes verificar si MySQL se instaló correctamente abriendo MySQL Workbench o usando la línea de comandos de MySQL.

Para abrir MySQL Workbench, búscalo en tu menú de inicio o ejecuta el programa si se creó un acceso directo en tu escritorio durante la instalación.
Para usar la línea de comandos, abre una ventana de comandos (cmd) y ejecuta mysql -u root -p. Te pedirá la contraseña que estableciste durante la instalación.
Eso es todo, has instalado MySQL en tu PC con Windows 10. Ahora puedes comenzar a trabajar con bases de datos MySQL.

Por si alguien esta usando maven, me ha funcionado de la siguiente manera: * Añadir dependencia ```js <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>8.0.32</version> </dependency> ``` * Ejecutar comando en docker para obtener contenedor de mysql con esa version ```js docker run --name my-mysql-container -e MYSQL_ROOT_PASSWORD=12345 -p 8060:3306 -d mysql:8.0.32 ``` * Y si estan usando copilot pueden usar estos prompts para generar el codigo * *// set to conn a mysql connection using DriverManager* * *// create a statement* * *// crate a query to select all records from table employees* * *// iterate through the java resultset and get the column first\_name that is a* *// string and print it*
La URL mostrada por la instructura no funciona. "jdbc:mysql//localhost:3306/project" Pero si la siguiente: "jdbc:mysql://localhost:3306/project" Cómo se explica esto?
Cuando abrió la aplicación me perdí, siento que sobreentiende que sabes algo, no entiendo qué programa esta usando. ¿Qué me recomiendan? mi objetivo es aprender SQL y este es el primer curso que me mandó ADA al realizar la consulta: Fundamentos de SQL: Aprende los conceptos básicos de SQL, incluyendo consultas SELECT, filtros WHERE, funciones de agregación y JOINs.[1. Curso de Java SE: SQL y Bases de Datos2. Curso Práctico de SQL y MySQ](https://platzi.com/cursos/java-sql/)

Existe otra forma para agregar el conector al proyecto Java en el que nos encontramos trabajando. Para ello, se requiere estar trabajando con un entorno de trabajo como Maven o Gradle.

Maven
En el caso de Maven basta con agregar el siguiente código en tu archivo pom.xml:

<dependency> 
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>$VERSION</version>
</dependency>

Gradle
Para el caso de Gradle basta con agregar en la sección dependencies del archivo build.gradle el siguiente código:

implementation 'org.mariadb.jdbc:mariadb-java-client:$VERSION'

NOTA: Es necesario cambiar $VERSION por la versión del conector deseada. En el caso del JDK 8~19 se puede usar la versión 3.2.0.

Fuente

Muy buen video, saber como hacer una conexión JDBC, me ayudo mucho para mi proyecto

# Script sql para crear la BD en MySQL `CREATE DATABASE IF not EXISTS project;` `USE project;` `DROP TABLE IF EXISTS employees;` ``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;` ``INSERT INTO `employees` (`first_name`, `pa_surname`, `ma_surname`, `email`, `salary`)`` `VALUES ("John", "Doe", "Smith", "[email protected]", 50000.00),` `("Jane", "Smith", "Johnson", "[email protected]", 60000.00),` `("Michael", "Johnson", "Brown", "[email protected]", 55000.00),` `("Emily", "Brown", "Davis", "[email protected]", 55000.00),` `("David", "Davis", "Wilson", "[email protected]", 58000.00);`
Sustituí los parámetros del DriverManager.*getConnection* por unas variables. De tal manera me quede práctico para cambiar en cualquier momento los datos de conexión. ![](https://static.platzi.com/media/user_upload/image-29d1e4ff-9184-4747-aa68-211a9c28bb48.jpg)

Muy buen ejemplo!

Sería bueno enfocar este tipo de cursos (que no son básicos en si del Lenguaje) en el uso de manejadores de dependencias, y así se haría todo más fácil y entendible
Como tip, para utilizar MySQL más facilmente, instalar docker y ejecutar `docker run --name platzi-mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:8.3.0` Después puede configurarse la base de datos y la tabla con cualquier programa de gestion como DBeaver (utilizo ese porque me permite conectarme a multiples clientes de distintas bases datos, no solo MySQL)
¿Qué alternativa se puede usar o escribir para no tener que pasar la información de la base de datos (usuario y contraseña)? Me parece que es inseguro de hacerlo de esa manera, gracias.
Hola, alguien podría decirme en que curso hace la creación de base de datos ya que al usar mysql me han salido errores y no he podido avanzar, gracias
Antes de esta clase, se debe tener previamente configurada una base de datos en un pc local con mysql. Si nunca has interactuado con bases de datos, no te preocupes mucho, solo pausa la clase y encargate de configurar la DB
Como aporte tambien deben crear datos en su base de datos si quieren hacer la consulta
Este video me ayudo a hacer la conexion con vscode para los que nos gusta programar alli <https://www.youtube.com/watch?v=yBhBaya7tF4>
Tuve un inconveniente y es que no me aparece Windowns ![](https://static.platzi.com/media/user_upload/image-fb888bf4-ea3d-48a1-98ee-ad3f69c3c167.jpg)
me da este error a intentar conectar C:\Users\thega\\.jdks\openjdk-22\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.3.6\lib\idea\_rt.jar=60217:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.3.6\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\thega\IdeaProjects\HolaMundo\_Securitas\out\production\HolaMundo\_Securitas Main java.lang.ClassNotFoundException: org.mariadb.jdbc.Driver at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:413) at java.base/java.lang.Class.forName(Class.java:404) at Main.main(Main.java:16) No se estableció la conexión a la base de datos
package CAPAS.UTILITARIO; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class CONECTARBD { private static String url="jdbc:mysql://localhost:3306/cuarto"; private static String user="root"; private static String pass="JACZ"; private static Connection myConn; public static Connection getInstance() throws SQLException { if (myConn == null) { myConn = DriverManager.getConnection(url, user, pass); } return myConn; } }
No suitable driver found for jdbc:mysql://localhost:3306/patologia, es el mensaje de error que me sale
pero no explican como crear esa base de datos
No olviden crear su base de datos llamada 'project' antes de empezar. Yo la crearé con MariaDB CREATE DATABASE project;
¡Claro, te entiendo! Aquí tienes una versión más enfocada en la ayuda y tutorial: \--- ¿Estás buscando una forma fácil de alojar tu base de datos en la nube? ¡Te tengo cubierto! 💻☁️ Echa un vistazo a Supabase (https://supabase.com/), una excelente opción que te ofrece todas las herramientas que necesitas sin complicaciones. Y si estás interesado en conectarlo con Java JDBC, ¡aquí tienes una guía paso a paso para hacerlo realidad! 👨‍💻 1\. \*\*Inicia sesión y crea tu base de datos en Supabase\*\*. \- Dirígete a su sitio web y regístrate si aún no lo has hecho. Una vez dentro, crea tu nueva base de datos. 2\. \*\*Encuentra los detalles de conexión\*\*. \- Una vez que hayas creado tu base de datos, busca la opción de ajustes en la barra lateral y haz clic en la sección de base de datos. 3\. \*\*Obtén la URL de conexión\*\*. \- La URL de conexión es crucial para conectar tu base de datos con Java JDBC. Debes formatearla de la siguiente manera: `jdbc:postgresql://tu_url:tu_puerto/tu_nombre_de_base_de_datos` 4\. \*\*Agrega tu usuario y contraseña\*\*. \- Utiliza los datos de usuario y contraseña proporcionados por Supabase para completar la conexión. ¡Y eso es todo! Con estos simples pasos, podrás tener tu base de datos en la nube conectada con Java JDBC. ¡Espero que esta guía te haya sido útil! ✨
Si existen algun error en la digitación del código debería de mostrarlo también y no solo cortar la clase. Y tambien hacer referencia que uno ya tiene que tener instalado mysql para que la conexion sea exitosa. Todo lo demás esta muy bien. Gracias. Para los que aún no tienen instalado Mysql: <https://acortar.link/dgXvnM> Creen antes la BD para que pueda conectarse. Saludos.
Quienes quieran tener una base datos, facil y sin correr en local, alojada en la nube. Les recomiendo Supabase (https://supabase.com/) PD: Debes tener el conector de Postgres ¿Cómo conectarlo con JAVA JDBC? ->Logeate y crea tu base de datos ->Van ajustes en la barra izquierda ![]()->Abren la opcion Database ![](https://static.platzi.com/media/user_upload/image-f8a0cfa7-ceaf-4b59-86ea-b0066b7ae07e.jpg)![]() ->Estos son los datos de conexion con la base de datos ->El host es la URL, pero la deben copiar de la siguente manera jdbc:postgresql://(aqui va tu url sin el https ejm (jdbc:postgresql://google.com)) ->Luego de poner tu url completa, ahora se agrega el puerto seguido de dos puntos ejm(jdbc:postgresql://google:1234) y por ultimo el database name seguido de un / ejm(jdbc:postgresql://google.com:1234/postgres) ->Y ya como explicaron en la clase pones tu usuario y contraseña como te aprece alli en los datos de conexion
Ejemplo actualizado y explicado mejor de una conexión a base de datos de Oracle con JDBC: ```java import java.sql.*; public class Main { public static void main(String[] args) { Connection myConn = null; Statement myStamt = null; ResultSet myRes = null; try{ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@host:puerto/SID(instancia de base de datos)"; String username = "user"; String password = "passeword"; myConn = DriverManager.getConnection(url,username,password); System.out.println("Conexion correcta"); } catch (Exception e) { e.printStackTrace(); System.out.println("Conexion errada"); } } } ```
Ejemplo actualizado y explicado mejor de una conexión a base de datos de Oracle con JDBC ```js import java.sql.*; public class Main { public static void main(String[] args) { Connection myConn = null; Statement myStamt = null; ResultSet myRes = null; try{ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@host:puerto/SID(instancia de base de datos)"; String username = "user"; String password = "password"; myConn = DriverManager.getConnection(url,username,password); System.out.println("Conexion correcta"); } catch (Exception e) { e.printStackTrace(); System.out.println("Conexion errada"); } } } ```import java.sql.\*; public class Main { public static void main(String\[] args) { Connection myConn = null; Statement myStamt = null; ResultSet myRes = null; try{ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@host:puerto/SID(instancia de base de datos)"; String username = "user"; String password = "passeword"; myConn = DriverManager.getConnection(url,username,password); System.out.println("Conexion correcta"); } catch (Exception e) { e.printStackTrace(); System.out.println("Conexion errada"); } } }
Ejemplo de conexión de base de datos de Oracle \<import java.sql.\*; public class Main { public static void main(String\[] args) { Connection myConn = null; Statement myStamt = null; ResultSet myRes = null; try{ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@host:puerto/SID(instancia de base de datos)"; String username = "user"; String password = "password"; myConn = DriverManager.getConnection(url,username,password); System.out.println("Conexion correcta"); } catch (Exception e) { e.printStackTrace(); System.out.println("Conexion errada"); } } }>
Hola, yo use estos comandos para la base de datos, espero les sirvan :) ```js CREATE DATABASE IF not EXISTS project; USE project; DROP TABLE IF EXISTS employees; CREATE TABLE `employees` ( `id` int 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; 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); SELECT * FROM `employees`; ```
# Documentación # Java.sql <https://docs.oracle.com/javase/8/docs/api/java/sql/package-summary.html#package.description> # Java.sql.Connection <https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html> # Java.sql.Statement <https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html> # Java.sql.ResultSet <https://docs.oracle.com/javase%2F7%2Fdocs%2Fapi%2F%2F/java/sql/ResultSet.html>
**Conectándo a la BBDD de platziblog 🥳💪🏼** **Esta BBDD la creé en el curso de \[Fundamentos de Base de Datos]\(https://platzi.com/cursos/bd/)** ![](https://static.platzi.com/media/user_upload/image-94cb8dbe-02b8-4ee2-9284-e8f374e4cfab.jpg)
```js import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // Creamos las variables de Usuario y contraseña String nameUser = "", Password = ""; // Solicitar información de conexión por teclado System.out.println("Ingrese el nombre de la base de datos:"); String nombreBD = scanner.next(); System.out.println("Ingrese el numero de puerto:"); int puerto = scanner.nextInt(); scanner.nextLine(); System.out.println("Ingrese el nombre del usuario:"); nameUser = scanner.next(); System.out.println("Ingrese el password del usuario:"); Password = scanner.next(); try { // Establecer la conexión con la base de datos PostgreSQL usando los datos ingresados por teclado String url = "jdbc:postgresql://localhost:" + puerto + "/" + nombreBD; Connection connection = DriverManager.getConnection(url, nameUser, Password); // Consulta SQL para verificar las credenciales del usuario String consulta = "SELECT pg_has_role(?, 'USAGE')"; // Preparar la declaración SQL try (PreparedStatement preparedStatement = connection.prepareStatement(consulta)) { preparedStatement.setString(1, nameUser); // Ejecutar la consulta try (ResultSet resultSet = preparedStatement.executeQuery()) { if (resultSet.next() && resultSet.getBoolean(1)) { System.out.println("¡Autenticación exitosa!"); } else { System.out.println("Autenticación fallida. Usuario o contraseña incorrectos."); } } } // Cerrar la conexión connection.close(); } catch (SQLException e) { e.printStackTrace(); } finally { // Cerrar el scanner scanner.close(); } } } ```import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; public class Main { public static void main(String\[] args) { Scanner scanner = new Scanner(System.*in*); // Creamos las variables de Usuario y contraseña String nameUser = "", Password = ""; // Solicitar información de conexión por teclado System.*out*.println("Ingrese el nombre de la base de datos:"); String nombreBD = scanner.next(); System.*out*.println("Ingrese el numero de puerto:"); int puerto = scanner.nextInt(); scanner.nextLine(); System.*out*.println("Ingrese el nombre del usuario:"); nameUser = scanner.next(); System.*out*.println("Ingrese el password del usuario:"); Password = scanner.next(); try { // Establecer la conexión con la base de datos PostgreSQL usando los datos ingresados por teclado String url = "jdbc:postgresql://localhost:" + puerto + "/" + nombreBD; Connection connection = DriverManager.*getConnection*(url, nameUser, Password); // Consulta SQL para verificar las credenciales del usuario String consulta = "SELECT pg\_has\_role(?, 'USAGE')"; // Preparar la declaración SQL try (PreparedStatement preparedStatement = connection.prepareStatement(consulta)) { preparedStatement.setString(1, nameUser); // Ejecutar la consulta try (ResultSet resultSet = preparedStatement.executeQuery()) { if (resultSet.next() && resultSet.getBoolean(1)) { System.*out*.println("¡Autenticación exitosa!"); } else { System.*out*.println("Autenticación fallida. Usuario o contraseña incorrectos."); } } } // Cerrar la conexión connection.close(); } catch (SQLException e) { e.printStackTrace(); } finally { // Cerrar el scanner scanner.close(); } } }
Es importante saber que, cuando uno hace una conexión a una base de datos, por seguridad no es bueno poner directamente el nombre de la base de datos, el puerto, el usuario ni el password, la forma correcta es acceder directamente a la ubicación donde se guardan nuestras credenciales de usuario o roles dentro de nuestro motor de base de datos, en mi caso estoy ocupando PostgreSQL import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; public class Main { public static void main(String\[] args) { Scanner scanner = new Scanner(System.*in*); // Creamos las variables de Usuario y contraseña String nameUser = "", Password = ""; // Solicitar información de conexión por teclado System.*out*.println("Ingrese el nombre de la base de datos:"); String nombreBD = scanner.next(); System.*out*.println("Ingrese el numero de puerto:"); int puerto = scanner.nextInt(); scanner.nextLine(); System.*out*.println("Ingrese el nombre del usuario:"); nameUser = scanner.next(); System.*out*.println("Ingrese el password del usuario:"); Password = scanner.next(); try { // Establecer la conexión con la base de datos PostgreSQL usando los datos ingresados por teclado String url = "jdbc:postgresql://localhost:" + puerto + "/" + nombreBD; Connection connection = DriverManager.*getConnection*(url, nameUser, Password); // Consulta SQL para verificar las credenciales del usuario String consulta = "SELECT pg\_has\_role(?, 'USAGE')"; // Preparar la declaración SQL try (PreparedStatement preparedStatement = connection.prepareStatement(consulta)) { preparedStatement.setString(1, nameUser); // Ejecutar la consulta try (ResultSet resultSet = preparedStatement.executeQuery()) { if (resultSet.next() && resultSet.getBoolean(1)) { System.*out*.println("¡Autenticación exitosa!"); } else { System.*out*.println("Autenticación fallida. Usuario o contraseña incorrectos."); } } } // Cerrar la conexión connection.close(); } catch (SQLException e) { e.printStackTrace(); } finally { // Cerrar el scanner scanner.close(); } } }
Para los que usen SQL SERVER les dejo la sintaxis correcta que está en la documentación de Microsoft:"jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;user=MyUserName;password=\*\*\*\*\*;encrypt=false;" ```js "jdbc:sqlserver://localhost:1433;databaseName=<NameDatabase>;user=<MyUserName>;password=<*****>;encrypt=false;" ```Reemplacen por sus valores y funciona.
para los nuevos y que están sufriendo por que no explico como crear una base de datos o como hacer todo el proceso que tiene que ver con mysql dejen sus comentarios tratare de responder a todos los posibles
Tengo Mac y como no tengo mucha memoria use Railway.app te deja crear base de datos temporales sin loguearte y también puedes hacer la colección Ami me funciono
hasta el momento no me esta gustando el curso, cuando corregi errores de codigo de ella, no explica que es lo que corrigio, por que se tiene cierto conocimiento uno lo sabe pero si venis crudo no das con lo que cambio.
Algo que me gustaría comentar, es que estaría genial que mostraran cómo solucionan los errores, puesto que me di cuenta que corrigieron la url de la base de datos justo después de un corte que a mi parecer, era innecesario, es mucho mejor cuando aprendes de los errores de los demás y cómo lo solventan.
agregue los dos puntos que faltaban en la url pero me salio otro error, com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure quien me puede ayudar
Estoy haciendo el curso en netbeans y sql server, Entonces por si a alguien le interesa, puede ejecutarlo de la siguiente forma. 1. Asegúrate de tener instalado el jdbc de sql server que sea compatible con tu versión de jdk y jre: en el siguiente link te lo explican en los primeros 10 minutos. <https://www.youtube.com/watch?v=_xG1vjSZrjI&t=641s> 2. La sintaxis cambia un poco, por lo que tal vez esto te dé una guia: ```js package bicicleta; import java.sql.*; /** * * @author USER */ public class Bicicleta { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Connection myConn = null; Statement myStamt = null; ResultSet myRes = null; try { myConn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=bici_u","sa","verdugos"); System.out.println("Genial, nos conectamos"); // traer datos myStamt = myConn.createStatement(); myRes = myStamt.executeQuery("SELECT * FROM Cliente"); while(myRes.next()){ System.out.println(myRes.getString("Nombre")); } } catch (Exception e) { e.printStackTrace(); System.out.println("algo salió mal"); } ```Buena suerte camarada
Otra forma de usar sql conector es mediante un gestor de dependecia como los es maven y Gradle en maven puedes agregar el conector MySQL como una dependencia en tu archivo `pom.xml` \<dependency> \<groupId>mysql\</groupId> \<artifactId>mysql-connector-java\</artifactId> \<version>VERSION\_DEL\_CONECTOR\</version> \</dependency> En Gradle, puedes agregar la dependencia en tu archivo `build.gradle` implementation 'mysql:mysql-connector-java:VERSION\_DEL\_CONECTOR'
Hubiese sido genial tener el schema de la base de datos para hacer el ejercicio y verificar que nos de igual que a la profe
Adjunto un ejemplo de conexión para base de datos de Oracle import java.sql.\*; public class Main { public static void main(String\[] args) { Connection myConn = null; Statement myStamt = null; ResultSet myRes = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@alias del servicio de base"; String username = "user"; String password = "password"; myConn = DriverManager.getConnection(url,username,password); System.out.println("Conexion correcta"); } catch (Exception e) { e.printStackTrace(); System.out.println("Conexion errada"); } } }