problemas para compilar

gieve
09 de Diciembre del 2005
HOla!! Espero que alguien me pueda ayudar.....
Tengo problemas con la compilacion del siguiente codigo:
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Event;
import java.awt.Font;
import java.awt.Label;
import java.awt.Point;
import java.awt.TextField;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;




public class plantas extends Applet{
TextField caja_texto=new TextField();
TextField caja_texto2=new TextField();
Label etiqueta=new Label();
Label etiqueta2=new Label();
Label etiqueta3=new Label();
String nombre;




public void init(){
setLayout(null);
Button boton=new Button("Guardar");

this.etiqueta.setLocation(new Point(10, 30));
this.etiqueta.setSize(new Dimension(300, 30));
this.etiqueta.setText("Nombre planta");
etiqueta.setFont(new Font("VERDANA",Font.BOLD,12));

this.etiqueta2.setLocation(new Point(10, 60));
this.etiqueta2.setSize(new Dimension(300, 30));
this.etiqueta2.setText("Ubicacion planta");
etiqueta2.setFont(new Font("VERDANA",Font.BOLD,12));

this.etiqueta3.setLocation(new Point(10, 90));
this.etiqueta3.setSize(new Dimension(700,30));
this.etiqueta3.setText("");
etiqueta3.setFont(new Font("VERDANA", Font.BOLD,10));


// this.caja_texto.setBackground(Color.cyan);
this.caja_texto.setLocation(new Point(120, 30));
this.caja_texto.setSize(new Dimension(180,20));
this.caja_texto.setEditable(true);

// this.caja_texto2.setBackground(Color.cyan);
this.caja_texto2.setLocation(new Point(120, 60));
this.caja_texto2.setSize(new Dimension(180,20));
this.caja_texto2.setEditable(true);

boton.setLocation(new Point(120, 120));
boton.setSize(new Dimension(80,20));



add(caja_texto);
add(caja_texto2);
add(etiqueta);
add(etiqueta2);
add(etiqueta3);
add(boton);
repaint();




}


public void nuevo(String nombre, String ubi,Connection conn){


if (nombre.length() == 0) {
this.etiqueta3.setText("Debe completar el nombre de la planta");
return;
}


else{
try
{

Statement lectura = conn.createStatement();
lectura.executeUpdate("INSERT INTO Planta (nombre,ubicacion)" +
"VALUES ('" + nombre + "','" + ubi + "')");
this.etiqueta3.setText("Datos guardados con exito");

}

catch (Exception ex)

{


this.etiqueta3.setText(ex.getMessage());
}
} }


public boolean action(Event evt,Object obj){
if (evt.target instanceof Button)
{
conectar conn = new conectar();
conectar.main();// aqui creo que hay un error!!!!!
nuevo( caja_texto.getText(), caja_texto2.getText(), conectar.conn);
return true;
}
return false;
}
}
El ERROR que sale en la consola cuando lo quiero compilar es este:
plantas.java:112:main(java.lang.String[]) in conectar cannot be applied to () conectar.main();
plantas.java:113: cannot resolve symbol
symbol: variable conn
location: class conectar nuevo(caja_texto.getText(),caja_texto2.getText() , conectar.conn);

La clase conectar contiene el siguiente codigo:

import java.sql.*;
public class conectar {

static String bd = "Planta";
static String login = "root";
static String password = "";
static String url = "jdbc:mysql://localhost/"+bd;

public static void main(String[] args) throws Exception
{
Connection conn = null;

try
{
Class.forName("com.mysql.jdbc.Driver").newInstance ();

conn = DriverManager.getConnection(url,login,password);

if (conn != null)
{
System.out.println("Conexión a base de datos "+url+" ... Ok");
conn.close();
}
}
catch(SQLException ex)
{
System.out.println("nnHubo un error : "+ex);
}
catch(ClassNotFoundException ex)
{
System.out.println("nnHubo otro error!!, no se encontro el driver :(n");
System.out.println(ex);

}

}
}


Este compila bien.......

Desde ya muchisimas gracias, espero alguien me pueda ayudar ya que estoy trabada en este punto.








Cristian
09 de Diciembre del 2005
Viejo y por que mejor no separas la vista del modelo de programacion de la base de datos para que el ejemplo te funcione mejor como asi

En la clase de la planta pones el public static void main(){} y el boolean astion y en la clase que llamaste conectar creas un metodo que se llame conectar y realizas la conexion a la base de datos y tambien pones alli el metodo que dice nuevo, osea lo que te quiero decir es que todo lo que es Statement y ResultSet van el la clase conectar para cuando te quieras conectar solo tienes que crear un objeto de tipo conectar y llamas al metodo coneccion

ej Conectar co=new Conectar();
public void coneccion(){Connection conn = null;

try
{
Class.forName("com.mysql.jdbc.Driver").newInstance ();

conn = DriverManager.getConnection(url,login,password);

if (conn != null)
{
System.out.println("Conexión a base de datos "+url+" ... Ok");
conn.close();
}
}
catch(SQLException ex)
{
System.out.println("\n\nHubo un error : "+ex);
}
catch(ClassNotFoundException ex)
{
System.out.println("\n\nHubo otro error!!, no se encontro el driver :(\n");
System.out.println(ex);

}
}
try{
co.coneccion();
}catch(){} y listo pruba y veras como te funciona mejor tu ejemplo