Problemas de Busqueda En JAVA

Iniciado por Sistematic, 19 Abril 2013, 20:05 PM

0 Miembros y 1 Visitante están viendo este tema.

Sistematic

Hola a todos soy nuevo no me juzguen!   :rolleyes: bueno vamos a lo principal e importante  ::) estoy programando en JAVA y la verdad es que voy a pasos de tortuga por cada problemita nuevo estoy que se me salen las ganas de programar >_< ja y bueno ojala que puedan ayudar :)
Les cuento que en JAVA estoy haciendo un formulario de una "Biblioteca" en donde supuestamente el que usa el programa o "el cliente" tendra que buscar el libro que desee a traves del Jtext que desee y para esto tiene un JText para buscar por ISBN, Titulo y Categoria. Cuando el cliente busca x alguno de esos JText que elija, los datos que encuentre se los tiene que mostrar en un JTable todos los resultados iguales o aproximados que encuentre :)
Cuando inicio el formulario logra mostrar todos los registros en el JTable pero lo que yo quiero es hacer es buscar un registro especifico :)
Lo de la base de datos lo tengo todo en PHPMyAdmin
Bueno mi problema es como poder configurar mi boton BUSCAR para que realice esa tarea :/
¿Quien tiene la amabilidad y paciencia para ayudarme?  ;D
En cada dificultad yace un verdadero potencial de crecimiento

visualfree

Estimado:

Junto con saludarte, te he creado un ejemplo que espero te sea de utilidad.

Adjunto Imagen Resultado:

http://imageshack.us/photo/my-images/339/capturadepantalla201304b.png/






/* CREACION BDD Y TABLA LIBRO
* create database Ejemplo
* create table Libro(
* idLibro int(10) primary key not null auto_increment,
* isbn varchar(250),
* titulo varchar(250),
* categoria varchar(250));
*
* INSERTAR LIBROS EN LA BDD
*
* insert into Libro(isbn,titulo,categoria) values('2323-2','libro1','categoria1');
* insert into Libro(isbn,titulo,categoria) values('2121-2','libro2','categoria2');
* insert into Libro(isbn,titulo,categoria) values('2222-2','libro3','categoria3');
*
*/


import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
import java.sql.SQLException;

import MysqlConec.conexión;
class Ejemplo{
public static void main(String[] args) throws SQLException
{
Ventana ventana=new Ventana();
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setVisible(true);
}
}
class Ventana extends JFrame{
public Ventana() throws SQLException{
this.setTitle("Ejemplo Elhacker");
this.setSize(400,400);
NuevoPanel panel=new NuevoPanel();
this.add(panel);
}
}
class NuevoPanel extends JPanel{
private JLabel lblBuscar=new JLabel("Buscar Libro");
private JTextField txtBuscar=new JTextField();
private JComboBox comboBuscar=new JComboBox();{
comboBuscar.addItem("ISBN");
comboBuscar.addItem("TITULO");
comboBuscar.addItem("CATEGORIA");
}
JButton btnBuscar=new JButton("Buscar");

DefaultTableModel modelo=new DefaultTableModel();{
modelo.addColumn("ID");
modelo.addColumn("ISBN");
modelo.addColumn("TITULO");
modelo.addColumn("CATEGORIA");
}
JTable tabla=new JTable(modelo);
JScrollPane scroll=new JScrollPane(tabla);
JPanel pnNorte=new JPanel();
conexión con=new conexión();
public NuevoPanel() throws SQLException{
pnNorte.setLayout(new GridLayout(1,4));
pnNorte.add(lblBuscar);
pnNorte.add(txtBuscar);
pnNorte.add(comboBuscar);
pnNorte.add(btnBuscar);
this.setLayout(new BorderLayout());
this.add(pnNorte,BorderLayout.NORTH);
this.add(scroll,BorderLayout.CENTER);
OyenteBuscar oBuscar=new OyenteBuscar();
btnBuscar.addActionListener(oBuscar);
Mostrar("select * from Libro");
}
class OyenteBuscar implements ActionListener{
public void actionPerformed(ActionEvent e){
String busqueda=txtBuscar.getText();
String opcion=comboBuscar.getSelectedItem().toString();

try {
if(opcion.equals("TITULO")){
Buscar("Select * from Libro where titulo like('%"+busqueda+"%')");
}else if(opcion.equals("ISBN")){
Buscar("Select * from Libro where isbn like('%"+busqueda+"%')");
}else if(opcion.equals("CATEGORIA")){
Buscar("Select * from Libro where categoria like('%"+busqueda+"%')");
}


} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}

}

public void Mostrar(String sql) throws SQLException{
con.setExecuteQuery(sql);
Object[] fila=new Object[4];
modelo.setRowCount(0);
while(con.getRs().next()){
fila[0]=con.getRs().getInt("idLibro");
fila[1]=con.getRs().getString("isbn");
fila[2]=con.getRs().getString("titulo");
fila[3]=con.getRs().getString("categoria");
modelo.addRow(fila);
}

}
public void Buscar(String sql) throws SQLException{
con.setExecuteQuery(sql);
Object[] fila=new Object[4];
modelo.setRowCount(0);
while(con.getRs().next()){
fila[0]=con.getRs().getInt("idLibro");
fila[1]=con.getRs().getString("isbn");
fila[2]=con.getRs().getString("titulo");
fila[3]=con.getRs().getString("categoria");
modelo.addRow(fila);
}

}


}


Clase Conexion


package MysqlConec;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class conexión {
private String bdd="Ejemplo";
private String usuario="root";
private String clave="123456";
private Connection con;
private Statement stmt;
private ResultSet rs;
public conexión()
{
try{
DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());
con=DriverManager.getConnection("jdbc:mysql://localhost/"+bdd,usuario,clave);
}catch(Exception e)
{
e.printStackTrace();
}
}
public void setExecuteUpdate(String sql){
try{
stmt=con.createStatement();
stmt.executeUpdate(sql);
stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
public void setExecuteQuery(String sql){
try{
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
}catch(SQLException ex)
{
ex.printStackTrace();
}
}
public ResultSet getRs() throws SQLException
{
return rs;
}

}


Sistematic

Im-pre-sio-nan-te la verdad MUCHISIMAS GRACIAS Visualfree  ;-)
Le tuve que hacer unos retoques y adecuarle a lo mio que la verdad no nada dificil la verdad es que estoy Feliz gracias a gente como vos  :rolleyes:
Totalmente agradecido Millones de Bendiciones  :rolleyes:
En cada dificultad yace un verdadero potencial de crecimiento