import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class CargarTabla {
public void cargarTablaPersonas(JTable t) {
String query = "select Rut, Nombre, Genero, Edad, Direccion, Ciudad, Isapre, Donante from personas where edad between ? and ?";
List<String[]> lista = executeQuery(query, new String[]{"18", "60"});
String[] cols = {"Rut", "Nombre", "Genero", "Edad", "Dirección", "Ciudad", "Isapre", "Donante"};
String[][] data = new String[lista.size()][cols.length];
for (int i = 0; i < data.length; i++) {
data[i] = lista.get(i);
/**
* Si el genero es F entonces se coloca Femenino de otro modo
* Masculino
*/
data[i][2] = data[i][2].equalsIgnoreCase("F") ? "Femenino" : "Masculino";
}
t.setModel(new DefaultTableModel(data, cols));
}
public Connection getConnection() {
String ip = "localhost";
String db = "myDB";
String user = "user";
String password = "password";
Connection cn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
cn = DriverManager.getConnection("jdbc:mysql://" + ip + ":3306/" + db, user, password);
} catch (ClassNotFoundException | SQLException ex) {
ex.printStackTrace(System.out);
}
return cn;
}
/**
* Ejecuta una consulta a la base de datos. Devuelve una lista con los
* registros de la consulta
*
* @param sqlCommand
* @param params
* @return
*/
public List<String[]> executeQuery(String sqlCommand, String[] params) {
Connection cn = null;
PreparedStatement pst = null;
ResultSet rs;
List<String[]> rows = null;
try {
cn = getConnection();
pst = cn.prepareStatement(sqlCommand);
if (params != null && sqlCommand.contains("?")) {
for (int i = 0; i < params.length; i++) {
pst.setObject(i + 1, params[i]);
}
}
rs = pst.executeQuery();
int cols = rs.getMetaData().getColumnCount();
String[] row;
rows = new ArrayList();
while (rs.next()) {
row = new String[cols];
for (int i = 0; i < row.length; i++) {
row[i] = rs.getString(i + 1);
}
rows.add(row);
}
} catch (SQLException ex) {
System.out.println("Error al ejecutar query: " + sqlCommand);
ex.printStackTrace(System.out);
} finally {
try {
if (pst != null && !pst.isClosed()) {
pst.close();
}
if (cn != null && !cn.isClosed()) {
cn.close();
}
} catch (SQLException ex) {
ex.printStackTrace(System.out);
}
}
return rows;
}
/**
* Ejecuta un comnado a la base de datos
*
* @param sqlCommand
* @param params
* @return
*/
public boolean executeStatement(String sqlCommand, String[] params) {
Connection cn = null;
PreparedStatement pst = null;
int afectados = 0;
try {
cn = getConnection();
pst = cn.prepareStatement(sqlCommand);
if (params != null && sqlCommand.contains("?")) {
for (int i = 0; i < params.length; i++) {
pst.setObject(i + 1, params[i]);
}
}
afectados = pst.executeUpdate();
} catch (SQLException ex) {
System.out.println("Error al ejecutar sentencia: " + sqlCommand);
System.out.println("Parametros: ");
if (params != null) {
for (String param : params) {
System.out.println(param);
}
}
ex.printStackTrace(System.out);
} finally {
try {
if (pst != null) {
pst.close();
}
if (cn != null) {
cn.close();
}
} catch (SQLException ex) {
ex.printStackTrace(System.out);
}
}
return afectados > 0;
}
}