elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 19
11  Programación / Java / Re: como es mejor programar respecto a bases de datos y java? en: 24 Septiembre 2012, 18:34 pm
gracias por responder sapito169. es una gran respuesta y muy detallada, pienso que tienes razon mientras el codigo exprese mejor lo que se desea hacer es mejor, aparte si se va a desarrollar un proyecto en equipo creo que la segunda manera de programar seria muy conveniente para todo el equipo ya que tendrian un codigo muy limpio, ordenado y muy bien organizado.

entonces de hoy en adelante voy a programar de la segunda manera y vere que resultados tengo.

saludos..
12  Programación / Java / como es mejor programar respecto a bases de datos y java? en: 24 Septiembre 2012, 05:17 am
que tal tengo una duda aber si me explico.



yo siempre cuando manejo bases de datos programo de esta manera:

tengo una classe para mi conexion a mysql:

no tienen que revisar todo el codigo, solo lo pongo para que se den una idea.

Código:
import java.sql.*;

public class ConexionMySql {

      private Connection conn;
      private ResultSet rs;
      private Statement instruc;

      private static String ip = "localhost";
      private static String db_name = "bases_de_datos_y_java_estructura";
      private static String user = "root";
      private static String passwd = "noe87";



    public ConexionMySql()
    {

                  try{

           Class.forName("org.gjt.mm.mysql.Driver");

           conn = DriverManager.getConnection("jdbc:mysql://"+ip+":3306/"+db_name, user, passwd);

           System.out.println("Driver org.gjt.mm.mysql.Driver in use");
           System.out.println("");

           instruc=(Statement) conn.createStatement();
           }

           catch(Exception e)
           {
                 System.out.println("Error en o al cargar ");
                 System.out.println(e.getMessage());
                 System.exit(0);
           }


    }
//realizar cambios por nimf
public void ejemplo(/*colocar parametros*/)
     {
        try{
            instruc.execute("colocar intsruccion");
        }catch(SQLException ex){
            System.out.println(ex);
        }
     }
//fin realizar cambios por nimf
    public ResultSet exec( String StrSql ) throws SQLException
     {
        rs = (ResultSet) instruc.executeQuery(StrSql);
       return rs;
     }
    public ResultSet execConsola( String StrSql )
    {
       try{
           System.out.println("--------------------------------------------");
           System.out.print("( " + StrSql + " )");
           System.out.print(" Only First and Last Rows ");
           System.out.println("  ");

           rs = (ResultSet) instruc.executeQuery(StrSql);

           ResultSetMetaData rsMetaData = rs.getMetaData();
           int numberOfColumns = rsMetaData.getColumnCount();


            System.out.println("--------------------------------------------");

            for (int i = 1; i < numberOfColumns + 1; i++)
            {
              String columnName = rsMetaData.getColumnName(i);
              System.out.print("- " + columnName + " ");
            }

            System.out.print("-");
            System.out.println("");
            System.out.println("--------------------------------------------");




            while(rs.next())
                  {
                        for (int i = 1; i < numberOfColumns + 1; i++)
                        {
                        String columnName = rsMetaData.getColumnName(i);
                        System.out.print( rs.getString(columnName) + " ");
                        }

                   rs.last();
                   System.out.println("");

                        for (int i = 1; i < numberOfColumns + 1; i++)
                        {
                        String columnName = rsMetaData.getColumnName(i);
                        System.out.print( rs.getString(columnName) + " ");
                        }
                  }

            System.out.println("");
            System.out.println("--------------------------------------------");

          }
       catch(Exception e)
         {
           System.out.println("Error en la base de datos");
           System.out.println(e.getMessage());
         }

       return rs;
      }



}


y hago mi jframe y coloco una tabla ahi y la empiezo a llenar de esta manera (ver metodoo llenarTabla):

Código:

import classes.ConexionMySql;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Noe
 */
public class Formulario2 extends javax.swing.JFrame {

    /** Creates new form Formulario2 */
    ResultSet rs;
    public Formulario2() {
        initComponents();
        llenarTabla();
    }
    private void llenarTabla(){
        Object object[]={""};
        DefaultTableModel tabla =  (DefaultTableModel) jTable1.getModel();
        tabla.addRow(object);
        ConexionMySql con = new ConexionMySql();
        try {
            rs = con.exec("select * from alumnos");
            int i=0;
            while (rs.next()){
                jTable1.setValueAt(rs.getInt(1), i, 0);
                jTable1.setValueAt(rs.getString(2), i, 1);
                jTable1.setValueAt(rs.getString(3), i, 2);
                jTable1.setValueAt(rs.getString(4), i, 3);
                i++;
            }
        } catch (SQLException ex) {
            Logger.getLogger(Formulario2.class.getName()).log(Level.SEVERE, null, ex);
        }
       
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(25, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(25, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Formulario2.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Formulario2.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Formulario2.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Formulario2.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Formulario2().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration
}





y asi de facil, pero despues de meterme a un curso de java de oracle me doy cuenta de que para todo se usa que setNombre getNombre y asi sus get y sus set y listas como si fuese todo muy organizadito, pero en el curso no veiamos todo eso con base de datos y entonce yo pienso: pues esas variables de nombres y apellidos las podremos tomar de la base  de datos y todo lo que hay en la base de datos traernolo a java y meterlo en lista pero eso seria crear objetos para cada persona y asi no se si esto ocupe mucha memoria o que pero bueno aqui les dejo la otra forma que se ve un poco mas organizada para java:


bueno conciderando la misma classe de conexion al proyecto solo se le agregarian otras dos classes mas (procesos y alumnos) y el frame.


aqui la clase de alumnos con sus geters y sus seters:


Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package classes;

/**
 *
 * @author Noe
 */


public class Alumnos {
    private String nombre;
    private String apellido;
    private String matricula;
    private int id;
    public Alumnos(){
       
    }
   
    public int getId(){
        return id;
    }
    public void setId(int id){
        this.id = id;
    }
    public String getNombre(){
        return nombre;
    }
    public void setNombre(String nombre){
        this.nombre = nombre;
    }
     public String getApellido(){
        return apellido;
    }
    public void setApellido(String apellido){
        this.apellido = apellido;
    }
     public String getMatricula(){
        return matricula;
    }
    public void setMatricula(String matricula){
        this.matricula = matricula;
    }

   
}

y aqui la clase procesos para las consultas y conexion a la base de datos:

Código:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package classes;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Noe
 */
public class Procesos {
    ResultSet rs;
   
    public List <Alumnos> ListAlumnos(/*String codAlumno*/){
        List<Alumnos> lista = new ArrayList();
        String consulta = "select * from alumnos";
        ConexionMySql con = new ConexionMySql();
        try {
            rs = con.exec(consulta);
            while(rs.next()){ 
                Alumnos a = new Alumnos();
                a.setId(rs.getInt(1));
                a.setNombre(rs.getString(2));
                a.setApellido(rs.getString(2));
                a.setMatricula(rs.getString(4));
                lista.add(a);
               
            }
        } catch (SQLException ex) {
            Logger.getLogger(Procesos.class.getName()).log(Level.SEVERE, null, ex);
        }
        return lista;
       
    }
   
}


notamos que dentro del while esta alumnos a = new alumnos().

esto provoca crear objetos para cada alumno, no se a la memoria como le valla con esto. imaginense tener que pasar varias tablas como por ejemplo alumnos, maestros, horarios, calificaciones. seria un objeteriio barbaro a mi pensar jeje.


y en el frame quedaria algo asi:

Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Formulario.java
 *
 * Created on Sep 23, 2012, 8:12:31 PM
 */
package formulario;

import classes.Alumnos;
import classes.Procesos;
import javax.swing.table.DefaultTableModel;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT;

/**
 *
 * @author Noe
 */
public class Formulario extends javax.swing.JFrame {

    /** Creates new form Formulario */
    Procesos obj = new Procesos();
    DefaultTableModel tabla = new DefaultTableModel();
    public Formulario() {
        initComponents();
        jTable1.setModel(tabla);
        tabla.addColumn("id");
        tabla.addColumn("nombre");
        tabla.addColumn("apellido");
        tabla.addColumn("matricula");
        llenarTabla();
    }
    private void llenarTabla(){
        System.out.println(""+obj.ListAlumnos().get(1).getNombre());
        tabla.setRowCount(0);
        for(Alumnos x:obj.ListAlumnos()){
            tabla.addRow(new Object[]{x.getId(),x.getNombre(),x.getApellido(),x.getMatricula()});
        }
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(37, 37, 37)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 578, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(93, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(32, Short.MAX_VALUE)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Formulario.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Formulario().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration
}

notamos que el metodo de este frame para llenar la tabla tiene menos codigo



bueno espero entiendan lo que quiero decir.

entonces la pregunta es que forma de diseno o estrucura seguirian ustedes para programar en java y bases de datos? y poque?



saludos..



a por si quieren el proyecto lo pueden bajar de aqui:


https://skydrive.live.com/redir?resid=97F9EDE94EA165E!38231&authkey=!AKZ5JFoyrD63prg


lo hice en netbeans.

13  Programación / Java / Re: Ayuda arreglos en: 21 Septiembre 2012, 22:06 pm
aver que te sirve de aqui nomas me falto mostrarlos randomizados ya me dio hueva seguir siguele tu y lo publicas aqui para ver como quedo saludos..

Código:

public class nums{
public static void main(String args[]){

int numMayor = 0;
int cont=0;
//for para revisar que no haya numeros menoras a 0 y mayores a 10
for(int i =0; i<args.length;i++){

if(Integer.parseInt(args[i])>10||Integer.parseInt(args[i])<0){
System.out.println("algun numero esta incorrecto solo intrdodusca del 0 al 10");
}
}
//for para sacar el mayor
for(int i =0; i<args.length;i++)
{

if (Integer.parseInt(args[i]) > numMayor)
{
numMayor = Integer.parseInt(args[i]);
}


}
//for para contar cuantas veces esta el mayor repetido
for(int i =0; i<args.length;i++)
{

if (Integer.parseInt(args[i]) == numMayor)
{
cont++;
}
}

//for para mostrar aleatoramente el arreglo te lo dejo de tarea completarilo porque ya me dio hueva jeje
//pista: int random_i=0;
System.out.println("los numeros en el arreglo son: ");
for(int i =0; i<args.length;i++)
{
//pistas
//utiliza la funcion random
//random_i = ramnodm desde 0 a 10 pero sin repetir
//System.out.println(args[random_i]);
System.out.println(args[i]);
}
System.out.println("el mayor es ="+numMayor+"y se repite "+cont+" veces");




}
}


14  Programación / Java / joptionpane con botones. en: 14 Septiembre 2012, 21:40 pm
que tal tengo un joptionpanel que pregunta si se desea realizar la venta con dos botones si o no. el problema es que el sistema debe estar disenado para usar solo el teclado sin raton ni nada.

Código:

Object[] options = {"No",
                    "Si",
        };
        int n = JOptionPane.showOptionDialog(this,
            "Realizar la venta? ",
            "Pregunta.",
            JOptionPane.YES_NO_OPTION,
            JOptionPane.QUESTION_MESSAGE,
            null,
            options,
            options[1]);
            System.out.println("n"+n);   
            if(n==1){
                makeSale();
       
            }

tengo ese codigo.

el problema es que cuando me muestra la ventanita supuestamente se deberia usar la tecla tab para escoger el boton o la opcion.

los botones en la ventanita son como de color azul y un borde azul mas claro cuando estan seleccionados, entonces cuando le pulso la tecla tab solo se cambia el borde de seleccion pero el color de fondo del boton no se cambia al boton seleccionado. y a la hora de pulsar enter para seleccionar el boton se selecciona el boton sin borde osea el que tiene un color azul mas fuerte de fondo.
15  Programación / Java / Re: jframe que no sobrepase la barra de tareas en: 14 Septiembre 2012, 01:38 am
jeje no ya olvidalo mejor editare la pregunta para otra que tengo,  la pregunta anterior, apenas iva a editar cuando me contestaste.
16  Programación / Java / se puedes ocultar pestanas en un jtabbedpane en: 14 Septiembre 2012, 01:29 am
que tal la pregunta es se puedes ocultar pestanas en un jtabbedpane?

esque lo que quiero hacer es algo asi aber que solucion hay.

tengo una ventana con su menu de herramientas por ejemplo:

Archivo|opciones|ayuda

aqui tengo componentes como tablas y eso


bueno digamos que en la pestana archivo hay opciones como vender, inentario etc..

entonces existe una ventana diferente para vender y para inventario,  la pregunta es:


como mostrar inventario y vender sin tener que cambiar de jframe?


ami se me ocurrio con el jtabbedpane y cuando seleccione una opcion dependioendo de cual selecciono automaticamente la pestana para que se cambie todo en el mismo jframe. pero el problema es que no puedo quitar las pestanitas.


lo otro pues es hacerlo por simples jpanel y al seleccionar una opcion ocultar un jpanel y mostrar otro.

saludos
17  Programación / PHP / mensajes en una web en: 8 Septiembre 2012, 00:59 am
que tal me surgio una duda, como seria posible hacer esto.

tengo una web que maneja usuarios y los usuarios se pueden mandar mensajes entre si, los mensajes los guardo en una base de datos, el problema es que hay que actualizar la pagina para ver si hay nuevos mensajes.

tengo en la base de datos una tabla asi

id_mensaje
id_usuario_remitente
id_usuario_destinatario
str_mensaje
int_estado  (para ver si ya fue leido, o es nuevo)


entonces sera posible que si un usuario da de alta un mensaje en la base de datos para otro usuario, la pagina web lo detecte y avice ya sea con un alert algun sonido o algo?
18  Programación / Desarrollo Web / contrasena con .htaccess a ciertas ip en: 8 Agosto 2012, 01:45 am
que tal, tengo un sistema en internet, pero deseo que el sistema pida una contrasena para poder entrar exepto en algunas partes como por ejemplo si yo entro en mi casa que no me pida contrasena pero si entro desde cualquier otro lado que si pida contrasena.


el sistema esta en php, anduve investigando un poco y hasta ahora solo e logrado denegar el accesos y permitir acceso por ip usando un archivo .htaccess.

no tiene que ser necesariamente con .htaccess si se puede desde php tambien me serviria.

alguna idea?



salduos..
19  Programación / Desarrollo Web / Re: que hosting elegir en: 7 Agosto 2012, 00:03 am
ok gracias
20  Programación / Desarrollo Web / que hosting elegir en: 6 Agosto 2012, 23:52 pm
que tal, tengo un punto de venta online para una empresa pequena como de 3 sucursales.

actualmente hago mis pruebas en un servidor gratuito http://www.000webhost.com/ y hasta ahora me ha ido bien.

pero ya para dejar el sistema ustedes que me recomiendan dejarlo ahi en el servidor gratuito o comprarle hosting a http://www.000webhost.com/ o comprarle otro si es asi a cual estara bueno?

que garantia hay de que la informacion de la base de datos no se pierda en un servidor gratuito o es lo mismo que en un servidor de paga?

como se maneja lo de la base de datos ya que en algunos servidores dicen:

MySQL Databases 2 o unlimited. osea que solo puedo tener 2 bases de datos?

bueno todos sabemos que una base de datos ocupa espacio al irse incrementando entonces si el servidor gratuito me ofrese 1500mb de espacio en disco esto afecta a el tamano de la base de datos me imagino?


saludos...

Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines