Archivo

Posts Tagged ‘NETBEANS’

Netbeans 7.0 + Git Nativo

Hace un tiempo atrás vengo utilizando github para subir mis proyectos e ideas, para poder hacer commits , updates,etc utilizaba un plugin para netbeans llamado nbgit.
Hoy descargué Netbeans 7.0 RC1 y leyendo me di cuenta que ahora soporta Git de forma “nativa”.

Para ello van a Herramientas / Complementos

Luego van a la Pestaña Configuración, Ahí presionamos el Boton Agregar

Ahora ponemos un nombre y agregamos el siguiente link en la URL
http://updates.netbeans.org/netbeans/updates/7.0/uc/beta2/beta/catalog.xml.gz y presionamos Aceptar

Comenzará a cargar las actualizaciones , nos dirigimos a la pestaña Plugins disponibles y buscamos git, lo seleccionamos y presionamos Instalar

Después de aceptar las condiciones de uso y de un siguiente, siguiente finalizar, tendremos que reiniciar el IDE y posteriormente veremos instalado Git en la pestaña de Equipo.

Saludos!

Java Persistence: Crea Aplicaciones Rapidamente [Netbeans+Java+Mysql+TopLink]

Supongamos que tenemos una base de datos y de las tablas de esa base de datos queremos armar una aplicación.
Las Tablas son 2:

  • pais
  • ciudad
CREATE TABLE pais (
	p_id VARCHAR(3) NOT NULL,
	p_nombre VARCHAR(25),
	PRIMARY KEY (p_id)
);
CREATE TABLE ciudad (
	c_id VARCHAR(2) NOT NULL,
	c_nombre VARCHAR(25),
	p_id VARCHAR(3) ,
	c_habitantes INT,
	PRIMARY KEY (c_id) ,
	FOREIGN KEY(p_id) REFERENCES pais(p_id)
);

Esas tablas contienen los siguientes registros:

INSERT INTO pais VALUES('001','Chile');
INSERT INTO pais VALUES('002','Venezuela');
INSERT INTO pais VALUES('003','EEUU');
INSERT INTO pais VALUES('004','Francia');

INSERT INTO ciudad VALUES('01','Concepcion','001',222232);
INSERT INTO ciudad VALUES('02','La serena','001',234445);
INSERT INTO ciudad VALUES('03','Valparaiso','001',123434);
INSERT INTO ciudad VALUES('04','Maracaibo','002',89212);
INSERT INTO ciudad VALUES('05','Caracas','002',233456);
INSERT INTO ciudad VALUES('06','Nueva York','003',445212);
INSERT INTO ciudad VALUES('07','Washington','003',235211);
INSERT INTO ciudad VALUES('08','Paris','004',232452);
INSERT INTO ciudad VALUES('09','San Huano','003',445212);

Para crear una aplicación en Java deberiamos comunmente armar un sistema en 3 capas y crear clases para conexión, manipulacion de datos, etc… como lo hacia en este post: https://estebanfuentealba.wordpress.com/2009/03/12/mysql-java-netbeans-conectar-a-una-base-de-datos-con-java/

Bueno en este post mostraré como crear una aplicacion en simples pasos sin necesidad de mucho programar con Java Persistence.

1.- Creamos un proyecto Java Aplication

2.- Le Asignamos un Nombre a nuestro proyecto y Finalizamos

3.- Ahora agregaremos a nuestro proyecto una conexión a nuestra base de datos, Para eso vamos a la pestaña Services, damos click derecho a Databases y presionamos New Connection…

4.- Ahora Configuramos; Seleccionamos el driver de MYSQL y completamos con los datos de la base de dato yFinalizamos.

5.- Ahora vamos a la pestaña Proyects, click derecho en Libraries y Add Library...

Agregaremos el Driver de MySQL y TopLink


Ahora ya podemos empezar a trabajar. Ahora agregaremos clases a nuestro proyecto. TopLink puede mapear la base de datos y transformar bd relacional a programación objetual. Para eso agregamos a nuestro proyecto una clase mapeada de la base de datos llamada Entity Clases From Data Base…

Nos pedirá la conexión y según ésta nos mostrará las tablas. Agregamos las tablas que deseamos ocupar en nuestro Proyecto y damos a Next.

Las tablas se mapearán y se convertirán en Clases , ahora nos pedirá el nombre que tendrán esas Clases mapeadas… Luego configuramos Persistence Unit… (Necesario para percistence)

Seleccionamos TopLink como Persistence Library y precionamos Create

Por Último presionamos Finish

Si todo sale Bien se habrán creado las clases que fueron mapeadas desde la base de datos

Ahora podemos empezar a programar :P , en este mini tutorial crearé el siguiente programa.

Un combobox con todos los países de la base de datos, al seleccionar algún país mostrará todas las ciudades asociadas a ese país.

Agregamos a nuestro proyecto un JFrame Form y agregamos JComboBox,JList y los JLabel’s correspondientes.

Agregamos los siguientes Atributos al JFrame Form:

    private EntityManagerFactory emf;
    private EntityManager em;

Ahora en el constructor del JFrame Form agregamos las siguientes lineas

    public NewJFrame() {
        initComponents();
        //inicializamos el EntityManagerFactory
        emf = Persistence.createEntityManagerFactory("TestPU");
        //inicializamos entity manager
        em = emf.createEntityManager();
        //Agregamos un Model al JList
        jList1.setModel(new DefaultListModel());
        //Posicionamos la ventana en el centro
        this.setLocationRelativeTo(null);
        //Llamamos al metodo que llena el combobox con paises
        loadComboBox();
    }

Ahora creamos el método loadComboBox que carga los países al combobox.

    public void loadComboBox() {
        //Creamos una Query
        //"Pais.findAll" es una query que fue definida automaticamente gracias al mapeo de la db
        //Luego obtenemos los resultados y los recorremos
        Iterator it = em.createNamedQuery("Pais.findAll").getResultList().iterator();
        while(it.hasNext()) {
            //Agrego el resultado al Combobox
            this.jComboBox1.addItem(((Pais)it.next()));
        }
    }

Ahora agregamos un evento al JCombobox para que al seleccionar cualquier Item llene el JList con las ciudades del País Seleccionado. El evento que usaremos es itemStateChanged

    private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {
        if(evt.getStateChange() == 1) {
            //Creamos una Query con una consulta ya definida ""Ciudad.findByPId"
            Query query = em.createNamedQuery("Ciudad.findByPId");
            //Esa query requiere pasarle un valor "pId" , la id del Pais
            query.setParameter("pId", ((Pais)this.jComboBox1.getSelectedItem()).getPId());
            //Elimino todos los elementos agregados al Modelo del JList
            ((DefaultListModel)jList1.getModel()).removeAllElements();
            //Recorro los resultados de la Query
            Iterator it = query.getResultList().iterator();
            while(it.hasNext()) {
                //Agrego el resultado a la JList
                ((DefaultListModel)jList1.getModel()).addElement(((Ciudad)it.next()));
            }
        }
    }

Ahora cambiamos los metodos toString() de Ciudad y Pais para que muestre los nombres de Ciudad y Pais respectivamente.

Con eso ya tenemos una aplicación funcional, sin tocar SQL ya podemos manipular los datos de nuestra base de datos.

Con esto también podemos Agregar datos a la base de datos con solo crear objetos de las Entity Class y hacer otro tipo de consultas.

Espero que sirva de algo este mini tutorial, ahora pueden investigar mas sobre Java Persistence.

Codigo de Fuente: Test.Persistence.EstebanFuentealba.rar

Saludos

Categorías:Java Etiquetas: , , , , , ,

MySQL + Java + NetBeans [ Conectar a una Base de datos con JAVA ]

Este es un tutorial de lo que aprendi hoy xD, muestra como conectar a una base de datos (MYSQL) usando como lenguaje de programacion JAVA y como IDE NetBeans.

Primero que todo debemos instalar en nuestras máquinas MySQL , yo tengo xUbuntu asi que lo instalo abriendo una Terminal y escribiendo lo siguiente:

sudo apt-get install mysql-server mysql-client

Una vez instalado se cambia la contraseña (password), para eso tecleamos:

sudo /usr/bin/mysqladmin -u root password 

cambiando <tuclave> por la contraseña … ejemplo:

sudo /usr/bin/mysqladmin -u root password 123456

y ya tienes instalado MySQL :D , para entrar solo teclea:

mysql -u root -p

Una vez dentro de la consola mysql podremos crear bases de datos, tablas, seleccionar, etc…
Para crear una base de datos se usa el comando

create database  ;

ejemplo:

create database test;

Para entrar a la base de datos creada usamos el comando

use  ;

ejemplo:

use test;

Ojo con los punto y comas “;
Ya dentro de la base de datos podremos ejecutar sentencias DDL y DML

Ahora para efecto del tutorial creamos dos tablas, una tabla alumno y otra tabla nota , cada nota tiene referenciado un rut de algun alumno.

en la misma consola escribimos:

CREATE TABLE alumno (
rut integer,
nombre varchar(100),
direccion varchar(100),
CONSTRAINT pk_alumno_rut PRIMARY KEY(rut)
);
CREATE TABLE nota (
rut integer,
nota double,
CONSTRAINT fk_nota_rut FOREIGN KEY(rut) REFERENCES alumno(rut)
);

ahora insertamos algunos datos a esas tablas

INSERT INTO alumno VALUES
(123456,"Esteban Fuentealba","Talcahuano lalal 368"),
(654321,"Juan Perez","Lalalala 87 chile"),
(47,"Homero Simpson","Avenida siempre viva,Springfield");

y por ultimo ingresamos algunas notas

INSERT INTO nota VALUES
(123456,7.0),
(47,3.5),
(654321,6.1);

Ahora, teniendo una base de datos poblada, nos vamos a netbeans y creamos un nuevo proyecto
File/New Proyect y seleccionamos Java / Java Aplication , Le ponemos cualquier nombre.

Aqui dejo el codigo comentado paso a paso:

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

package mysqljava;
/*
*  Importamos todas las clases el package java.sql
*/
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author esteban
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args)  {
/*
Declaramos una variable "con" del tipo Connection
con ello podremos conectarnos a la base de datos
*/
Connection con = null;
try {
/*
Seteamos el driver-libreria de nuestro motor que usaremos, MySQL
*/
Class.forName("com.mysql.jdbc.Driver").newInstance();
/*
Creamos la coneccion, pasamos como parametros:
* /
* jdbc:mysql://localhost/test
*
* 
* root
*
* 
* root
*/
con = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "root");
if (con != null) {
/*
creamos un objeto Statement , con el podremos enviar al servidor sql  consultas
*/
Statement st = con.createStatement();
/*
Ahora enviaremos una consulta para seleccionar todos los alumnos y que nota se han sacado
y lo guardaremos en un objeto del tipo ResultSet
*/
ResultSet r = st.executeQuery("SELECT a.nombre as nombre, n.nota as nota FROM alumno a,nota n WHERE n.rut = a.rut ORDER BY n.nota");
/*
Iteramos el resultado para mostrar cada fila y especificamos que columna queremos con el metodo getString o getDouble segun este en la base de datos
*/
while(r.next()) {
/*
Imprimo por consola el nombre y la nota de todos los alumnos ingresados a la base de datos
*/
System.out.println("[Alumno: "+r.getString("nombre")+"] [Nota:"+r.getDouble("nota")+"]");
}
}
} catch (InstantiationException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

}

Por ultimo, falta lo mas importante, agregar a nuestro proyecto los drivers de MySQL para ser usados con JAVA, el driver (libreria) la pueden descargar desde la pagina de MySQL .

Una vez descargado el mysql-connector-java-X.X.X lo descomprimen y lo agregan al proyecto:

Click derecho en Libraries / Add Jar-Folder y buscamos el archivo que descomprimimos , en mi caso agregue mysql-connector-java-5.1.7-bin.jar

Compilamos , Corremos la aplicacion y el resultado es algo como esto

init:
deps-jar:
compile:
run:
[Alumno: Homero Simpson] [Nota:3.5]
[Alumno: Juan Perez] [Nota:6.1]
[Alumno: Esteban Fuentealba] [Nota:7.0]
BUILD SUCCESSFUL (total time: 10 seconds)

Los alumnos ordenados por nota de menor a mayor xD
Descargar Codigo Fuente :
mysqljava

Espero que les sirva,

Saludos!.

Categorías:Java Etiquetas: , , , ,