Java admite muchas bases de datos y, para cada base de datos, debemos tener sus respectivos archivos jar para colocarlos en la ruta de compilación para continuar con la conectividad JDBC.
- MySQL : mysql-connector-java-8.0.22 o conectores mysql similares con diferentes versiones. En este artículo, estamos usando mysql-connector-java-8.0.22
- Servidor SQL : sqljdbc4.jar
- Oráculo : ojdbc14.jar
- MongoDB (base de datos NoSQL): mongo-java-driver-3.12.7
Primero, debemos decidir qué base de datos estamos usando y, en consecuencia, debemos agregar los frascos. Para otra base de datos como Progress, Cassandra, etc., también tenemos archivos jar y debemos incluirlos en la ruta de compilación. Para varios asuntos relacionados con el procesamiento de datos de RDBMS (MySQL, SQL Server, etc.) tenemos un paquete java.sql. Para obtener el objeto ResultSetMetaData , debemos seguir los pasos a continuación.
1. Registre el controlador
Para la base de datos, difiere. Como estamos usando MySQL, podemos hacerlo a través de
Class.forName("com.mysql.cj.jdbc.Driver"); or DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver");
2. Obtenga la conexión de MySQL.
- test es un nombre de base de datos utilizado en el código.
- serverTimezone=UTC, si no se proporciona, tendremos java.sql.SQLException. El valor de la zona horaria del servidor xxxx no se reconoce o representa más de una zona horaria.
- Necesitamos configurar el servidor o el controlador JDBC a través de la propiedad de configuración serverTimezone) para usar un valor de zona horaria más específico si queremos utilizar el soporte de zona horaria.
- Entonces, ya sea en la configuración de MySQL, podemos establecer o como a continuación, podemos proporcionar Credenciales aquí son root / «», es decir, el nombre de usuario es root y la contraseña es «».
Conexión de conexión = DriverManager.getConnection(“jdbc:mysql://localhost:3306/test?serverTimezone=UTC”, “root”, “”);
3. Crear un objeto de declaración
Statement st = connection.createStatement();
4. Ejecutar la consulta
String query = "Select * from doctorsdetails"; // Executing the query ResultSet resultSet = statement.executeQuery(query);
5. Obtenga el objeto ResultSetMetaData:
Recupere el objeto ResultSetMetadata del ResultSet actual invocando el método getMetaData(). Los siguientes métodos están en el objeto ResultSetMetadata y están impresos en el programa
- int getColumnCount(): Devuelve el número de columnas de una tabla.
- String getColumnName(int columnNumber): Devuelve el nombre de la columna cuyo número de índice se pasa como parámetro.
- int getColumnType(int columnNumber): Devuelve el nombre de la columna como un valor entero cuyo número de índice se pasa como parámetro.
Por ejemplo, 3 indica DECIMAL, 12 indica VARCHAR y 4 indica INT.
- 12 se representa como java.sql.Types.VARCHAR
- 4 se representa como java.sql.Types.INTEGER
A continuación se muestra la lista de valores devueltos por varios tipos de datos de java.sql.Type, es decir, getColumnType() proporciona estos resultados.
- Array: 2003
- Gran entero: -5
- Binario: -2
- Bit: -7
- Gota: 2004
- Booleano: 16
- Carácter: 1
- Clob: 2005
- Fecha: 91
- Enlace de datos: 70
- decimales: 3
- Distinto: 2001
- Doble: 8
- Flotador: 6
- Entero: 4
- Objeto Java: 2000
- Carácter variable largo: -16
- Número: -15
- NClob: 2011
- Várchar: 12
- VarBinario: -3
- minúsculo int: -6
- Marca de tiempo con zona horaria: 2014
- Marca de tiempo: 93
- Tiempo: 92
- Estructura: 2002
- SqlXml: 2009
- Mint: 5
- Ancho de fila: -8
- Referencia: 2012
- Referencia: 2006
- reales: 7
- Nvarchar: -9
- Numérico: 2
- nulo: 0
- Mint: 5
Verifiquemos eso creando una tabla en MySQL y encontremos el tipo de datos usando ResultSetMetaData
Deje que una tabla llamada detalles de médicos esté disponible en MySQL en la base de datos de prueba ,
CREATE TABLE `doctorsdetails` ( `id` int(6) unsigned NOT NULL, `Name` varchar(50) DEFAULT NULL, `AvailableDays` varchar(200) DEFAULT NULL, `consultation_fees` int(11) DEFAULT NULL, `qualification` varchar(20) DEFAULT NULL, `experience` int(11) DEFAULT NULL, `gender` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Según la tabla anterior, getColumnType() para las columnas de la tabla anterior son las siguientes
nombre de columna | Tipo de columna | Valor |
---|---|---|
identificación | En t | 4 |
Nombre | varchar | 12 |
DíasDisponibles | varchar | 12 |
honorarios_consulta | En t | 4 |
calificación | varchar | 12 |
experiencia | En t | 4 |
género | varchar | 12 |
En el código, usemos los pasos, y se dan como comentarios.
Java
// Java program to get the column type in JDBC import java.sql.*; public class GetColumnTypeInJdbc { public static void main(String[] args) { System.out.println( "Methods of column to get column type in JDBC"); Connection con = null; try { // We need to have mysql-connector-java-8.0.22 // or relevant jars in build path of project // Class.forName("com.mysql.jdbc.Driver"); // //Earlier these were supported. If we use , // we will be getting warning messages This // driver is the latest one // 1. Register the driver Class.forName("com.mysql.cj.jdbc.Driver"); // 2. Get the connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?serverTimezone=UTC", "root", ""); try { // Create statement so that we can execute // all of our queries // 3. Create a statement object Statement statement = con.createStatement(); // Query to retrieve records String query = "Select * from doctorsdetails"; // 4. Executing the query ResultSet resultSet = statement.executeQuery(query); // 5. Get the ResultSetMetaData object ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) { System.out.println( "ColumnName = " + resultSetMetaData.getColumnName( i)); System.out.println( "ColumnType = " + resultSetMetaData.getColumnType(i) + " "); System.out.println( "ColumnLabel = " + resultSetMetaData.getColumnLabel( i) + " "); System.out.println( "ColumnDisplaySize = " + resultSetMetaData .getColumnDisplaySize(i) + " "); System.out.println( "ColumnTypeName = " + resultSetMetaData .getColumnTypeName(i) + " "); System.out.println( "------------------"); } } // in case of any SQL exceptions catch (SQLException s) { System.out.println( "SQL statement is not executed!"); } } // in case of general exceptions // other than SQLException catch (Exception e) { e.printStackTrace(); } finally { // After completing the operations, we // need to null resultSet and connection resultSet = null; con = null; } } }
Al ejecutar el programa, obtendremos la salida como se muestra a continuación. es decir, similar al valor de la tabla que se muestra arriba
Publicación traducida automáticamente
Artículo escrito por priyarajtt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA