BASE DE DATOS CON JAVA PARTE 2

ejemplo 2103
import java.io.*;
import java.net.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class java2103 extends Applet {
static final int puerto = 6700;
String cadConsulta = "No hay consulta todavia";
String cadResultado = "No hay resultados";
Button boton;
TextArea texto;
List lista;

public void init() {
setLayout( new GridLayout( 5,1 ) );
texto = new TextArea( 20,40 );
lista = new List();
boton = new Button( "Ejecutar Consulta" );
boton.addActionListener( new MiActionListener() );

add( new Label( "Escribir la consulta aqui..." ) );
add( texto );
add( boton );
add( new Label( "y examinar los resultados aqui" ) );
add( lista );

resize( 800,800 );
}

void abreSocket() {
Socket s = null;
try {
s = new Socket( getCodeBase().getHost(),puerto );
BufferedReader sinstream =
new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintStream soutstream = new PrintStream( s.getOutputStream() );

soutstream.println( texto.getText() );
lista.removeAll();
cadResultado = sinstream.readLine();
while( cadResultado != null ) {
lista.add( cadResultado );
cadResultado = sinstream.readLine();
}
} catch( IOException e ) {
System.err.println( e );
} finally {
try {
if( s != null )
s.close();}
catch( IOException e ) {}
}
}


class MiActionListener implements ActionListener {
public void actionPerformed( ActionEvent evt ) {
abreSocket();
}
}
}

ejemplo 2104
import java.net.URL;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;

public class java2104 extends Frame implements MouseListener {

Button botConexion = new Button( " Conexión a la Base de Datos " );
Button botConsulta = new Button( " Ejecutar Consulta " );

TextField txfConsulta = new TextField( 40 );
TextArea txaSalida = new TextArea( 10,75 );
TextField txfUsuario = new TextField( 40 );
TextField txfClave = new TextField( 40 );
TextField txfUrl = new TextField( 40 );
String strUrl = "";
String strUsuario = "";
String strClave = "";
// El objeto Connection es parte del API de JDBC, y debe ser lo
// con la Base de Datos
Connection con;

public static void main( String args[] ) {
java2104 ventana = new java2104();

// Se recoge el evento de cierre de la ventana
ventana.addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent evt ) {
System.exit( 0 );
}
} );

ventana.setSize( 450,300 );
ventana.setTitle( "Tutorial de Java, JDBC" );
ventana.pack();
ventana.setVisible( true );
}

public java2104() {

txfConsulta.setEditable( true );
txfUsuario.setEditable( true );
txfUrl.setEditable( true );
txaSalida.setEditable( false );

GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints gbCon = new GridBagConstraints();

setLayout( gridbag );

setFont( new Font( "Helvetica",Font.PLAIN,12 ) );
setBackground( Color.orange );

gbCon.weightx = 1.0;
gbCon.weighty = 0.0;
gbCon.anchor = GridBagConstraints.CENTER;
gbCon.fill = GridBagConstraints.NONE;
gbCon.gridwidth = GridBagConstraints.REMAINDER;
add( new Label( "Usuario" ) );
gridbag.setConstraints( txfUsuario,gbCon );
add( txfUsuario );
add( new Label( "Clave de Acceso" ) );
gridbag.setConstraints( txfClave,gbCon );
add( txfClave );
add( new Label( "URL de la Base de Datos" ) );
gridbag.setConstraints( txfUrl,gbCon );
add( txfUrl );
// Ahora viene la fila en que está el botón de Conexión a la
// base de datos, fijamos los constraints para que eso sea así
// y lo añadimos
gridbag.setConstraints( botConexion,gbCon );
add( botConexion );

botConexion.addMouseListener( this );

// su envío al driver JDBC
add( new Label( "Consulta SQL" ) );
gridbag.setConstraints( txfConsulta,gbCon );
add( txfConsulta );
gridbag.setConstraints( botConsulta,gbCon );
add( botConsulta );
botConsulta.addMouseListener( this );

Label labResultado = new Label( "Resultado" );
labResultado.setFont( new Font( "Helvetica",Font.PLAIN,16 ) );
labResultado.setForeground( Color.blue );
gridbag.setConstraints( labResultado,gbCon );
gbCon.weighty = 1.0;
add( labResultado );

gridbag.setConstraints( txaSalida,gbCon );
txaSalida.setForeground( Color.white );
txaSalida.setBackground( Color.black );
add( txaSalida );
}


public void mouseClicked( MouseEvent evt ) {

if( evt.getComponent() == botConsulta ) {
System.out.println( txfConsulta.getText() );
txaSalida.setText( Select( txfConsulta.getText() ) );
}

if( evt.getComponent() == botConexion ) {
// Se fijan las variables globales de usaurio, clave y url a
// los valores que se hayan introducido en los campos
strUsuario = txfUsuario.getText();
strClave = txfClave.getText();
strUrl = txfUrl.getText();


try {

Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
// La conexión aquí se realiza indicando la URL de la base de
// datos y el usuario y clave que dan acceso a ella
con = DriverManager.getConnection( strUrl,strUsuario,strClave );
// Si la conexión ha sido satisfactoria, cambiamos el rótulo
// del botón de conexión, para que indique que si se pulsa lo
// que se realiza será la "Reconexión"
botConexion.setLabel( "Reconexión a la Base de Datos" );
txaSalida.setText( "Conexion establecida con "+strUrl );
} catch( Exception e ) {
// Se presenta la información correspondiente al error, tanto
// en la consola como en la zona de salida de la ventana
e.printStackTrace();
txaSalida.setText( e.getMessage() );
}
}
}
public void mouseEntered( MouseEvent evt ) {}
public void mouseExited( MouseEvent evt ) {}
public void mousePressed( MouseEvent evt ) {}
public void mouseReleased( MouseEvent evt ) {}

// Este es el método que realiza la consulta
public String Select( String consulta ) {
String resultado="";
int cols;
int pos;

try {
// En primer lugar, se instancia la clase Statement, que es

Statement sentencia = con.createStatement();

ResultSet rs = sentencia.executeQuery( consulta );

cols = ( rs.getMetaData() ).getColumnCount();

while( rs.next() ) {
// Se recorre ahora cada una de las columnas de la fila, es
// decir, cada celda, una a una
for( pos=1; pos <= cols; pos++ ) {
// Este es el método general para obetener un resultado. el

resultado += rs.getString( pos )+" ";
}

// Para cada fila que se revise, se le añade un retorno de
// carro, para que la siguiente fila empiece en otra línea
resultado += "\n";
}

sentencia.close();
} catch( Exception e ) {
e.printStackTrace();
resultado = e.getMessage();
}

return resultado;
}
}

0 comentarios:

Publicar un comentario