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