Usuario:


Práctico

Storyboard

>Modelo

ID:(1095, 0)



Conexión con Java

Definición

Se puede establecer una conexión con una base de datos de prueba de nombre fsca107 que se encuentra en la dirección (Host Address) 94.23.167.137. El usuario es el mismo fsca107 mientras que la contraseña la de los computadores de la sala de computación.

```

String url = "jdbc:mysql://94.23.167.137:3306/fsca107";

String username = "fsca107";

String password = "********";

System.out.println("Connecting database...");

try (Connection connection = DriverManager.getConnection(url, username, password)) {

System.out.println("Database connected!");

} catch (SQLException e) {

throw new IllegalStateException("Cannot connect the database!", e);

}

```

ID:(1301, 0)



Crear un Sistema de Trabajo

Imagen

Para disponer de un sistema local de base de datos se debe instalar por ejemplo (recomendados):

- mysql (base de datos de libre acceso)

- sqlyog (interface de trabajo)

En este caso la instalación es local, pero podría estar igualmente en un servidor remoto de modo que todos los usuarios tienen simultáneamente acceso.

ID:(1300, 0)



Ejemplo de Tablas Relacionadas

Nota

En una tabla relacional se ligan dos o mas llaves asociadas a tablas base.

Como ejemplo se puede tener las tablas base:

- persona (una llave id)

- libros (una llave id)

y se puede introducir una tabla relacional que indica a que persona se le ha prestado que libro. Esto se logra con una tabla relacional que contiene ambas llaves

- id_persona

- id_libro

Adicionalmente se puede agregar un campo que indica por ejemplo

- si esta en su poder o no

- fecha de retiro

- fecha de devolución

Eso si esta estructura no permite guardar la historia de prestamos ya que solo permite una dupla persona-libro. Si se agrega una tercera llave como sería la fecha de retiro se podría llevar un registro histórico de cada retiro y devolución.

ID:(2484, 0)



Ejemplo Insertar Registros

Cita

Para insertar registros debe primero armarse la conexión con la base de datos y luego realizar la inserción. Un ejemplo de este tipo es:

```

public static void main(String[] args)

{

try

{

// create a mysql database connection

String myDriver = "ocom.mysql.jdbc.Driver()";

String myUrl = "String myUrl = "jdbc:mysql://94.23.167.137:3306/fsca107";";

Class.forName(myDriver);

Connection conn = DriverManager.getConnection(myUrl, "fsca107", "*********");

Statement st = conn.createStatement();

// note that i'm leaving "date_created" out of this insert statement

st.executeUpdate("INSERT INTO users (first_name, last_name, is_admin, num_points) "+"VALUES ('Fred', 'Flinstone', false, 10000)");

conn.close();

}

catch (Exception e)

{

System.err.println("Got an exception!");

System.err.println(e.getMessage());

}

}

```

ID:(8875, 0)



Ejemplo Listar Registros

Ejercicio

Para listar registros debe primero armarse la conexión con la base de datos, luego realizar la busqueda y finalmente listar el resultado. Un ejemplo de este tipo es:

```

public static void main(String[] args)

{

try

{

// create our mysql database connection

String myDriver = "org.gjt.mm.mysql.Driver";

String myUrl = "jdbc:mysql://94.23.167.137:3306/fsca107";

Class.forName(myDriver);

Connection conn = DriverManager.getConnection(fsca107, "root", "");

// our SQL SELECT query.

// if you only need a few columns, specify them by name instead of using "*"

String query = "SELECT * FROM users";

// create the java statement

Statement st = conn.createStatement();

// execute the query, and get a java resultset

ResultSet rs = st.executeQuery(query);

// iterate through the java resultset

while (rs.next())

{

int id = rs.getInt("id");

String firstName = rs.getString("first_name");

String lastName = rs.getString("last_name");

Date dateCreated = rs.getDate("date_created");

boolean isAdmin = rs.getBoolean("is_admin");

int numPoints = rs.getInt("num_points");

// print the results

System.out.format("%s, %s, %s, %s, %s, %s

", id, firstName, lastName, dateCreated, isAdmin, numPoints);

}

st.close();

}

catch (Exception e)

{

System.err.println("Got an exception! ");

System.err.println(e.getMessage());

}

}

```

ID:(8874, 0)



Trabajo con una Base de Datos Completa

Ecuación

Para practicar hacer busquedas mas complejas se puede cargar la base de datos real de baseball que se puede bajar desde

baseball_db.zip

La base esta almacenada en un archivo de respaldo que se recupera mediante

RESTORE DATABASE mibasededatos FROM disk='c:\midirectori\miarchivo.bak'

La estructura de la base de datos se describe en el archivo.

ID:(1302, 0)