Escribo esta vez porque tengo una aplicacion que conecta a una base de datos para guardar información de acuerdo a un formulario, o simplemente consulta en una tabla los registros que hay...
Es un .jar y la conexion es a una base de datos local de mysql, mm funciona bien, el lio es que cuando oprimo el boton que ejecuta la consulta, el proceso me tarda demasiado, al rededor de 30 segundos hasta que me muestra la consulta en pantalla...
No se si estoy haciendo una subrutina inecesaria o que pasa??
agergo el codigo
Código:
puntma.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
modelo = new DefaultTableModel();
tabla = new JTable(modelo);
puntamay.add(tabla);
try
{
DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());
Connection con = DriverManager.getConnection (
"jdbc:mysql://localhost/tetris","root", "rigoxls");
Statement s = con.createStatement();
ResultSet rs = s.executeQuery("select * from info where puntaje != '0' order by puntaje desc");
// Creamos las columnas.
modelo.addColumn("Id");
modelo.addColumn("Nombre");
modelo.addColumn("Puntaje");
modelo.addColumn("Lineas");
modelo.addColumn("Comentario");
// Bucle para cada resultado en la consulta
while (rs.next())
{
Object [] fila = new Object[5];
for (int i=0;i<5;i++)
fila[i] = rs.getObject(i+1);
// Se añade al modelo la fila completa.
modelo.addRow(fila);
}
TableColumn column = null;
for (int i = 0; i < 5; i++) {
column = tabla.getColumnModel().getColumn(i);
if (i == 0) {
column.setPreferredWidth(5);
}
if (i == 1) {
column.setPreferredWidth(50);
}
if (i == 2) {
column.setPreferredWidth(50);
}
if (i == 3) {
column.setPreferredWidth(50);
}
if (i == 4) {
column.setPreferredWidth(180);
}
}
tabla.setPreferredScrollableViewportSize(new Dimension(400, 100));
JScrollPane scrollPane = new JScrollPane(tabla);
puntamay.add(scrollPane);
con.close();
}
catch (Exception h)
{
h.printStackTrace();
}
puntamay.setVisible(true);
}
}
);
public void actionPerformed(ActionEvent e){
modelo = new DefaultTableModel();
tabla = new JTable(modelo);
puntamay.add(tabla);
try
{
DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());
Connection con = DriverManager.getConnection (
"jdbc:mysql://localhost/tetris","root", "rigoxls");
Statement s = con.createStatement();
ResultSet rs = s.executeQuery("select * from info where puntaje != '0' order by puntaje desc");
// Creamos las columnas.
modelo.addColumn("Id");
modelo.addColumn("Nombre");
modelo.addColumn("Puntaje");
modelo.addColumn("Lineas");
modelo.addColumn("Comentario");
// Bucle para cada resultado en la consulta
while (rs.next())
{
Object [] fila = new Object[5];
for (int i=0;i<5;i++)
fila[i] = rs.getObject(i+1);
// Se añade al modelo la fila completa.
modelo.addRow(fila);
}
TableColumn column = null;
for (int i = 0; i < 5; i++) {
column = tabla.getColumnModel().getColumn(i);
if (i == 0) {
column.setPreferredWidth(5);
}
if (i == 1) {
column.setPreferredWidth(50);
}
if (i == 2) {
column.setPreferredWidth(50);
}
if (i == 3) {
column.setPreferredWidth(50);
}
if (i == 4) {
column.setPreferredWidth(180);
}
}
tabla.setPreferredScrollableViewportSize(new Dimension(400, 100));
JScrollPane scrollPane = new JScrollPane(tabla);
puntamay.add(scrollPane);
con.close();
}
catch (Exception h)
{
h.printStackTrace();
}
puntamay.setVisible(true);
}
}
);