Hoy vamos a ver cómo podemos crear tabla con Java JDBC. Analizaremos los pasos que hay que dar para poder conectarnos a una base de datos mediante JDBC y conseguir crear una tabla.
Lo primero que haremos para crear tabla con Java JDBC será conectarnos a la base de datos. Tenéis explicado en detalle cómo conectarnos a una base de datos con Java JDBC en «Conectarnos a una base de datos con JDBC».
En este caso vamos a utilizar una base de datos MySQL, pero podríamos utilizar cualquier tipo de base de datos.
Connection con = null;
String sURL = "jdbc:mysql://localhost:3306/lineadecodigo";
Properties p = new Properties();
p.put("user", "usuario");
p.put("password","password");
con = DriverManager.getConnection(sURL,p);
Vemos que utilizamos el método .getConnection()
enviándole la cadena de conexión y un fichero de propiedades donde va la información del usuario y password.
Lo siguiente será preparar la sentencia de creación de la base de datos. Vamos a utilizar la sentencia SQL CREATE TABLE
. La estructura de la sentencia SQL CREATE TABLE
es la siguiente:
CREATE TABLE nombre_tabla
(campo1 tipo_campo1 atributos,
campo2,tipo_campo2, atributos,
...
campoN,tipo_campoN,atributos)
Dónde los tipos de campos pueden ser:
- Cadenas, char, varchar,…
- Números, tinyint, smallint, int, bigint,…
- Fechas, date, datetime,…
- …
Y entre los atributos podemos tener diferentes alternativas como:
- NOT NULL, si queremos que el campo no pueda albergar nulos.
- AUTO_INCREMENT, si queremos que el número se incremente automáticamente.
- CURRENT_TIMESTAMP, para asignarle la fecha de la creación del registro
- …
En este caso montaremos la siguiente sentencia SQL CREATE TABLE
:
CREATE TABLE paises (
pais varchar(50) NOT NULL,
acronimo CHAR(3),
poblacion INT(20))
Esta sentencia vamos a ponerla dentro de una clase PreparedStatement
PreparedStatement stmt = null;
stmt = con.prepareStatement("CREATE TABLE paises (pais varchar(50) NOT NULL, acronimo CHAR(3), poblacion INT(20))");
Una vez creada pasaremos a ejecutarla:
stmt.execute();
Es importante saber que la ejecución de una sentencia SQL puede generar una SQLException
, por lo cual el código anterior lo deberemos de poner dentro de un bucle try-catch
.
try {
stmt = con.prepareStatement("CREATE TABLE paises (pais varchar(50) NOT NULL, acronimo CHAR(3), poblacion INT(20))");
stmt.execute();
stmt.close();
} catch (SQLException sqle) {
System.out.println("Error en la ejecución: "
+ sqle.getErrorCode() + " " + sqle.getMessage());
}
De esta forma ya habremos conseguido crear tabla con Java JDBC.