TaT AvbravoDataClassG
Instalar plugin
Contributed By; AVBravo
Descargar el plugin desde
Descargar plugin
En el menu Herramientas- Complementos de NetBeans seleccionar Descargado e instalar el plugin.
Como usar DataClassG
Muestra como utilizar le plugin para crear tu propio api de persistencia
Ahora agregamos el Driver JDBC MYSQL![]()
dar clic en el plugin![]()
Seleccionamos la base de datos![]()
Tenemos el API generadoDamos clic derecho en el nombre del proyecto y seleccionamos Limpiar y Construir
Ahora en la carpeta dist de nuestro proyecto tenemos el jar con la persistencia de nuestra base de datos
![]()
Ahora creamos un nuevo proyecto![]()
En las propiedades del proyecto, agregamos el driver jdbc MySQL y el API de persistencia correspondiente al proyecto anterior que creamos.(archivo .jar)![]()
Bibliotecas necesarias![]()
Esta es la clase principalAgregamos el api
![]()
Metodos..
Insert()
Crea un registro nuevo en la tabla. Devuelve boolean si fue exitoso.
Verifica que los campos requeridos tengan valores.
Verifica si ya existe un registro con esos datos.
Usuarios u = new Usuarios();
UsuariosController uc = new UsuarioController();
u.setCedula("1-1-1");
u.setNombre("name");
if(uc.Insert(u)){
System.out.println("Guardado exitosamente”);
}else{
System.out.println("No se guardo el registro”+ uc.getMensaje());
}
Update()
Edita el registro actual. Devuelve boolean si fue exitoso.
Verifica que los campos requeridos tengan valores.
Usuarios u = new Usuarios();
UsuariosController uc = new UsuariosController();
u.setCedula("1-1-1");
u.setNombre("new name");
if(uc.Update(u)){
System.out.println(" Se edito exitosamente");
}
else{
System.out.println("No se actualizo el registro");
}
Update(String where)
Edita los registros basados en una sentencia sql. Devuelve boolean si fue exitoso.
Usuarios u = new Usuarios();
UsuariosController uc = new UsuariosController();
String sql ="activo='si' where cedula='6-6-6' or cedula='7-7-7'";
if (uc.Update(sql)) {
System.out.println(" Se actualizaron exitosamente");
} else {
System.out.println("No se actualizaron los registros");
}
UpdatePrimaryKey()
Se utiliza cuando deseamos editar la clave primaria, se utilizan dos objetos uno con los valores anteriores y otro se actualizara con los nuevos valores en la clave primaria. Se cambiara el username avbravo por avbravo1
Nota: Para tablas relacionadas debe ser establecida la actualizacion en cascada para las tablas relacionadas.
User user_old = new User();
User user_new = new User();
UserController uc = new UserController();
//indicamos la clave primaria existente
user_old.setUsername("avbravo");
User u = uc.findByPrimaryKey(user_old);
if (u != null) {
user_old = u;
//indicamos la nueva clave primaria
user_new.setUsername("avbravo1");
if (uc.EditarClavePrimaria(user_old, user_new)){
System.out.println("Se actualizo la clave primaria");
}
else{
System.out.println("no se actualizo");
}
} else {
System.out.println("No hay registros");
}
Eliminar()
Elimina el registro actual. Devuelve boolean si fue exitoso.
Usuarios u = new Usuarios();
UsuariosController uc = new UsuariosController();
u.setCedula("1-1-1");
if (Mensajeria.PreguntaSiNo("Desea eliminar el usuario",
"Usuarios").equals("si")) {
if (uc.Eliminar(u)) {
System.out.println(" Se elimino exitosamente");
} else {
System.out.println(""No se elimino el registro");
}
}
Eliminar(String sql)
Elimina los registros basados en la sentencia sql enviado. Devuelve boolean si fue exitoso.
Usuarios u = new Usuarios();
UsuariosController uc = new UsuariosController();
String sql ="cedula='7-7-7' or cedula='6-6-6'";
if (Mensajeria.PreguntaSiNo("Desea eliminar los registros ",
"Usuarios").equals("si")) {
if (uc.Eliminar(sql)) {
System.out.println(" Se eliminaron exitosamente");
} else {
System.out.println("No se eliminaron los registros");
}
}
EliminarTodos()
Elimina todos los registros de la tabla. Devuelve boolean si fue exitoso.
Usuarios u = new Usuarios();
UsuariosController uc = new UsuariosController();
u.setCedula("1-1-1");
if (Mensajeria.PreguntaSiNo("Desea eliminar todos los usuario",
"Usuarios").equals("si")
{
if (uc.EliminarTodos()) {
System.out.println(" Se eliminaron todos los usuarios exitosamente");
} else {
System.out.println("No se eliminaron los usuarios");
}
}
ExisteRegistro(Class)
Devuelve un booleano si existe el registro.
Usuarios u = new Usuarios();
UsuariosController uc = new UsuariosController();
u.setCedula("1-1-1");
if(uc.ExisteRegistro(u)){
System.out.println("Existe un registro con esa cédula");
} else {
System.out.println("NO existe un registro con esa cédula");
}
findByPrimaryKey()
Encuentra el registro con la clave primaria. Se debe asignar la llave primaria
a buscar.
Devuelve un objeto con los resultados o null si no encuentra el registro.
Usuarios u = new Usuarios();
UsuariosController uc = new UsuariosController();
u.setCedula("1-1-1");
Usuarios u2 = uc.findByPrimaryKey(u);
if (u2 != null) {
u = u2;
System.out.println(" Nombre" + u.getNombre());
} else {
System.out.println("No se encontro un registro con esa clave");
}
findBy...
Se crean los metodos con todos los campos para realizar la busqueda y devuelve un boolean indicando si se encontro y se carga la lista de objetos de esa clase que podemos recorrer.
findByNombre
Usuarios u = new Usuarios();
UsuariosController uc = new UsuariosController();
u.setNombre("name");
if(uc.findByNombre(u)){
for(Usuarios u1:uc.getUsuarioslist()){
System.out.println("cedula "+ u1.getCedula() + " nombre " +
u1.getNombre());
}
}
else{
System.out.println("No se encontro un registros con ese nombre");
}
Nota:
Si es un solo registro podemos usar
Usuarios u =uc.getUsuarioslist().get(0);
findByMapa()
Parametros para Consultas.
1.Crear un Map para indicar los parametros
2. Establece los parametros mediante el metodo put
3. Llamar al metodo findByMapa
4. Si no hay registros devuelve false
4.1 Si es un solo registros obtenemos el primero posición 0
UsuariosController uc = new UsuariosController();
Map<String, String> parametros = new HashMap<String, String>();
parametros.put("nombre", "avbravo");
//otro parametro
parametros.put("pais","panama");
if(uc.findByMapa(parametros)){
for(Usuarios u: uc.getUsuarioslist()){
System.out.println("cedula " + u.getCedula() + "nombre " + u.getNombre());
}
}else{
System.out.println("No existen registros con esa condicion”);
}
Nota: El Query puede ser usado para consultas también.
Contador()
Devuelve el numero de registros en la tabla.
UsuariosController uc = new UsuariosController();
System.out.println(" Registros " + uc.Contador());
Contador(String sql)
Devuelve el numero de registros que cumplan la condición sql.
UsuariosController uc = new UsuariosController();
String sql = "cedula='6-6-6' or cedula='7-7-7'";
System.out.println(" Registros " +uc.Contador(sql));
Func(String funcion, String campo)
Permite ejecutar funciones sobre un campo (sum,max,min, etc)
devuelve un valor Double, que puede
ser convertido a Integer si es necesario.
RecibosController recibosController1 = new RecibosController();
Double Total = recibosController1.Func("sum", "totalpagado");
System.out.println(" Total "+total);
//Si es un campo entero
// System.out.println(" Total "+total.intValue());
Func(String funcion, String campo,String where)
Permite ejecutar funciones sobre un campo, devuelve un valor Double, que puede
ser convertido a Integer si es necesario.
RecibosController recibosController1 = new RecibosController();
Double total = recibosController1.Func("min", "totalpagado","anulado='no'");
System.out.println(" total "+total);
Query()
Para consultas se puede implementar la clausula where
String sql = "nombre= 'aristides villarreal bravo' and pais='panama' order by cedula desc";
if (uc.Query(sql)) {
for( Usuarios u: uc.getUsuarioslist()){
System.out.println("cedula " + u.getCedula() + "nombre " + u.getNombre());
}
} else {
System.out.println("No existen registros con esa condicion");
}
//Tambien para obtener la lista ordenada
String sql = "order by cedula desc";
if (uc.Query(sql)) {
for( Usuarios u: uc.getUsuarioslist()){
System.out.println("cedula " + u.getCedula() + "nombre " + u.getNombre());
}
} else {
System.out.println("No existen registros con esa condicion");
}
Listar()
Devuelve una lista de objetos, la operación que realiza es select * from tabla
Usuarios u = new Usuarios();
UsuariosController uc = new UsuariosController();
if(uc.Listar()){
for( Usuarios u: uc.getUsuarioslist()){
System.out.println("cedula " + u.getCedula() + "nombre " + u.getNombre());
}
}else{
System.out.println("No existen registros");
}
Informe de Generacion
El plugin genera el archivo llamado InformeGeneracion.txt
en el directorio generales en el que se incluyen los mensajes del proceso y la
verificacion de la estructura de las tablas, como por ejemplo
1. Te la tabla tenga llave primaria
2. Que no tenga claves foraneas de manera ciclica(haciendo referencia a ella
misma)
Combo
Cargar un Combo
Arrastramos las clases al formulario. En Bibliotecas-> TestPersistence.jar-> En el paquete beans arrastramos Usuarios.class y controller arrastramos UsuariosController.classSi usamos SwingX arrastramos un JXComboBox o un simple JComboBox en el init del formulario. Agregamos AutoCompleteDecorator.decorate(jXComboBoxUsuarios); CargarCombo();
Ahora cargamos el combo
private void CargarCombo() {
try {
jXComboBoxUsuarios.removeAllItems();
if (usuariosController1.Listar()) {
for (Usuarios u : usuariosController1.getUsuarioslist()) {
jXComboBoxUsuarios.addItem(u.getNombre());
}
} else {
Mensajeria.Mensaje("No existen registros de usuarios");
}
} catch (Exception ex) {
Mensajeria.MensajeError(ex, "CargarCombo()");
}
}
Ahora en el actionPerformed del combo
try {
int a = jXComboBoxUsuarios.getSelectedIndex();
if (a != -1) {
usuarios1 = usuariosController1.getUsuarioslist().get(a);
jTextFieldCedula.setText(usuarios1.getCedula());
jTextFieldNombre.setText(usuarios1.getNombre());
}
} catch (Exception ex) {
Mensajeria.MensajeError(ex, "Seleccion Combo()");
}
Seleccionar automáticamente un elemento
jXComboBoxUsuarios.setSelectedItem(usuarios1.getNombre());
Formulario Edicion combos relacionados
Si tenemos tablas relacionadas y esta las mostramos mediante combos como se muestra en la siguiente figura.
Cuando seleccionamos el primer combo y establecemos el setSelected para el siguiente combo, en el metodo de validación de este debemos llamar nuevamente al metodo listar.
En el init() cargamos los dos combos
CargarComboGrupoGastoSegunObjeto();
CargarComboGastos();
private void CargarComboGastos() {
try {
jXComboBoxGastos.removeAllItems();
if (gastossegunobjetoController1.Listar()) {
for (Gastossegunobjeto gastossegunobjeto :
gastossegunobjetoController1.getGastossegunobjetolist()) {
jXComboBoxGastos.addItem(gastossegunobjeto.getIdgastosegunobjeto() + "-" + gastossegunobjeto.getGastosegunobjeto().trim());
}
} else {
Mensajeria.Mensaje("No se han creado los grupos");
}
} catch (Exception ex) {
Mensajeria.MensajeError(ex, "CargarComboGrupo)");
}
}
private boolean CargarComboGrupoGastoSegunObjeto() {
try {
jXComboBoxGrupoGastos.removeAllItems();
if (grupogastossegunobjetoController1.Listar()) {
jXComboBoxGrupoGastos.removeAllItems();
for (Grupogastossegunobjeto g : grupogastossegunobjetoController1.getGrupogastossegunobjetolist()) {
jXComboBoxGrupoGastos.addItem(g.getIdgrupogastosegunobjeto() + " - " + g.getGrupogastosegunobjeto());
}
return true;
} else {
Mensajeria.Mensaje("Debe crear primero el grupo de gastos segun objeto para crear gastos segun objeto");
}
} catch (Exception ex) {
Mensajeria.MensajeError(ex, "CargarComboGrupoGastoSegunObjeto()");
}
return false;
}
En el primer combo---
try {
boolean habilitar = false;
int i = jXComboBoxGastos.getSelectedIndex();
if (i != -1) {
gastossegunobjeto1 = gastossegunobjetoController1.getGastossegunobjetolist().get(i);
jTextFieldGasto.setText(gastossegunobjeto1.getGastosegunobjeto());
habilitar = true;
Grupogastossegunobjeto gg1 = new Grupogastossegunobjeto();
gg1.setIdgrupogastosegunobjeto(gastossegunobjeto1.getIdgrupogastosegunobjeto());
if (grupogastossegunobjetoController1.findByIdgrupogastosegunobjeto(gg1)) {
for (Grupogastossegunobjeto grupogastossegunobjeto2 : grupogastossegunobjetoController1.getGrupogastossegunobjetolist()) {
jXComboBoxGrupoGastos.setSelectedItem(grupogastossegunobjeto2.getIdgrupogastosegunobjeto() + " - " + grupogastossegunobjeto2.getGrupogastosegunobjeto());
}
} else {
Mensajeria.Mensaje("No existe un grupo de gastos con el codigo " + gg1.getIdgrupogastosegunobjeto());
}
}
} catch (Exception ex) {
Mensajeria.MensajeError(ex, "Combo");
}
Boton Guardar int i = jXComboBoxGrupoGastos.getSelectedIndex(); Importante llamar nuevamente el metodo listar del segundo combo
grupogastossegunobjetoController1.Listar();
if (i != -1) {
grupogastossegunobjeto1 = grupogastossegunobjetoController1.getGrupogastossegunobjetolist().get(i);
} else {
Mensajeria.Mensaje("No se ha seleccionado ningun grupo");
return;
}
gastossegunobjeto1.setGastosegunobjeto(jTextFieldGasto.getText());
gastossegunobjeto1.setIdgrupogastosegunobjeto(grupogastossegunobjeto1.getIdgrupogastosegunobjeto());
gastossegunobjeto1.setUsername(SesionLocal.getUsername());
gastossegunobjeto1.setFechausername(SesionLocal.getFechausername());
if (gastossegunobjetoController1.Editar(gastossegunobjeto1)) {
Mensajeria.Mensaje("Se actualizo el registro");
CargarComboGastos();
} else {
Mensajeria.Mensaje("No se actualizo");
}
jCheckBox
No hacer binding de checkboxy validar el valor if (jCheckBox1.isSelected()) { usuario1.setActivo(true); } else { usuario1.setActivo(false); }
Podemos indicar si esta seleccionado por defecto
8. Filtrar por año
String sql = "year(fecha) = '" + year + "'";
if (acuerdosController1.Query(sql)) {
Object[] filas = new Object[5]; // Hay tres columnas en la tabla
for (Acuerdos a : acuerdosController1.getAcuerdoslist()) {
filas[0] = a.getIdacuerdo();
filas[1] = a.getNumacuerdo();
Format formatter;
formatter = new SimpleDateFormat("dd/MM/yyyy");
Date fecha = a.getFecha();
String MyFecha = formatter.format(fecha);
filas[2] = MyFecha;
filas[3] = a.getDetalle();
modelo.addRow(filas);
}
} else {
Mensajeria.Mensaje("No hay registros para ese año");
}
9. Filtrar entre fechas
java.util.Date FechaDate = jXDatePickerFechaInicio.getDate();
java.sql.Date FechaInicio = new java.sql.Date(FechaDate.getTime());
if (FechaInicio == null) {
return;
}
FechaDate = jXDatePickerFechaTerminacion.getDate();
java.sql.Date FechaTerminacion = new java.sql.Date(FechaDate.getTime());
if (FechaTerminacion == null) {
return;
}
String sql ="fecha >= ' " + FechaInicio+"' + and fecha <= ' " +
FechaFin+"'";
if (acuerdosController1.Query(sql)) {
Object[] filas = new Object[5]; // Hay tres columnas en la tabla
for (Acuerdos a : acuerdosController1.getAcuerdoslist()) {
filas[0] = a.getIdacuerdo();
filas[1] = a.getNumacuerdo();
Format formatter;
formatter = new SimpleDateFormat("dd/MM/yyyy");
Date fecha = a.getFecha();
String MyFecha = formatter.format(fecha);
filas[2] = MyFecha;
filas[3] = a.getDetalle();
modelo.addRow(filas);
}
} else {
Mensajeria.Mensaje("No hay registros para ese año");
}
10. Configurar Servidor Bases de Datos en el cliente
Si tenemos instalado en el cliente
Editamos el archivo .jar, buscamos properties
Buscamos el archivo de Configuration
Cambiamos los parametros que necesitemos y guardamos el archivo
























