Java Standard Edition

Framework que deberíamos conocer

Java tiene miles y miles de frameworks para que los desarrolladores puedan ahorrar unas cuantas (o hasta miles) líneas de código. Lo queramos o no, siempre tendremos que hacer uso de éstos alguna vez en nuestra vida como desarrollador.

¿Por qué usar un framewok?

Alguna de las razones pueden ser:

  1. Están de moda.
  2. Lo están usando en donde trabajas.
  3. No quedarse atrás (siempre hay que actualizarse).
  4. Te facilitan la vida.

Después de Spring Framework llegaron otros, pero no todos le pudieron hacer frente. Ya sea por que la comunidad se acostumbra a lo conocido y no cree que lo nuevo sea una alternativa o algo mejor o porque no investigamos lo suficiente para saber que es lo que esta llegando en la actualidad.

Aquí una lista de Frameworks conocidos por casi todos los desarrolladores (Spring, Vert.X) y otros no tanto que podrían ser útiles para nosotros:

El siempre confiable Spring Boot.

https://spring.io/projects/spring-boot

El incipiente y ligero Javalin.

Gpu

Cómo puedo utilizar la gpu o tarjeta gráfica para recorrer un archivo de texto grande

TableView en JavaFX

Buenas tardes, tengo un problema al usar las Table View, soy nuevo en Javafx, y apenas estoy aprendiendo, casi todo es más sencillo que con Swing, bueno, el problema es el siguiente
El problema es que estoy usando Scene Builder, esto ya es un proyecto grande, y necesito tener visualizaciones de las ventanas
 
El resultado de ese código es una tabla que arroja esto StringProperty[Value:1] en vez de arrojar simplemente un "1". No se en que me estoy equivocando, he investigado y casi todos lo hacen a mano, y en el caso de este proyecto no es viable cambiarlo a mano.

PROBLEMAS EN UN BUCLE FOR

Hola compañeros:

Tengo un método que interactura sobre un Jtable (tblTabla2). El cometido es el siguiente:
Comprueba qu el Jtable tenga un registro o varios.
Cuando hay varios registros en el Jtable, mira en la columna 9 si los nº son iguales o no
Dependiendo de si son iguales o no anotará en la columna 1 un dato que tambien está subrodinado a lo anotado en la columna 0.

El método es el siguiente:

void repasaReparto(){
igual = "SI";
// Cuenta los registros
int i = 0;
for (i = 0; i < tblTabla2.getRowCount(); i++) {

}
//Para cuando el JTabla2, tiene más de 1 registro
if (i>1) {
//Carga el valor de la fila 1, de la columna 9 (TAMAÑO) en la variable repartoS
String repartoS = "";
String repartoSotras = "";
int filasel = 0;
modelo20 = (DefaultTableModel) tblTabla2.getModel();
repartoS = (String) modelo20.getValueAt(filasel, 9);
//Compara el valor de las otras fila con la 1ª. Carga el valor de las demás filas
//(repartoSotras)y lo compara con repartoS
int i1 = 0;

¿Cómo edito metadatos de archivos de word?

Hola comunidad, solicitando su valioso apoyo, estoy tratando de modificar los metadatos de un archivo de word de office 365, con la librería de POI 3.9 como muestro a continuación.

 

En todas las fuentes que consulté no alcanzo a visualizar en que momento está modificación se guarda en mi archivo. Por lo tanto aunque ejecute esta rutina no sucede nada, en el archivo no cambia los metadatos cuando los veo desde las propiedades del documento.

Primeros pasos con Selenium I

Hola :

Esta es la primera entrada de lo que pienso podría ser una librería que en algún momento le podría servir a alguien, he estado pensando en una forma en la cual poder ayudar con la configuración un poco más ordenada de lo que es la automatización de pruebas, obviamente existen muchas maneras de realizar test y en algún momento estaré pensando en publicar todas o la mayoría de herramientas que nos permitan realizar estas tareas de alguna mejor forma, así que esta primera entrada tratara de las automatizaciones de pruebas front-end por medio de Selenium WebDriver.
También empezaré a escribir sobre postman y algunas cosas que he tenido que aprender (no soy perfil tester, pero me interesan este tipo de pruebas)
La solución que se va a desarrollar en futuros posts me ha servido, y tal vez alguien pueda modificarla o aprovecharla para su beneficio y adaptarla a sus propias necesidades esto es lo bonito de la POO, pero antes de picar código, se debe de empezar con la teoría :) animo !

Cómo leer registros de base de datos como un Stream de Java

He estado usando Spring desde la versión 1.0 y una de las clases que siempre me han resultado extremadamente útiles es JdbcTemplate. Esperaba que para la versión 5 integrara funcionalidad del API de stream de Java, pero no fue así.

Sin embargo a veces necesito realizar búsquedas en base de datos que devuelven miles o incluso millones de registros, y no puedo usar los métodos de JdbcTemplate que devuelven listas porque me quedo sin memoria. Los métodos que usan RowCallbackHandler son más apropiados, pero sería mucho más conveniente poder usar Streams de Java, particularmente si se pueden leer los resultados como objetos usando algún RowMapper.

Así que decidí hacer mi propio generados de Stream para usar con un JdbcTemplate. Al final, terminé con uno que es realmente más genérico y se puede usar con cualquier código que genere elementos ya sea de manera finita o infinita (aunque para streams infinitos existe una API mucho más simple). No es suficiente material como para generar una biblioteca, así que decidí publicarlo como un post.

@Transactional spring framework

Hola soy nuevo en Spring y tengo una duda acerca de @Transactional, tengo un método que llama a dos métodos anotados con @Transactional cada uno de ellos hace un insert en una base de dados diferente pero cuando ocurre un error no hace rollback en ambas bases de datos.

Este es el método:

 

Esta es la configuración de los txManager para las dos bases de datos:

 

Middleware en Redux-mx

La parte que yo creo es mas interesante en la librería Redux es la creación de Middlewares y de ese modo extender Redux mas allá de lo que el equipo de Redux nos pueden ofrecer en la librería.

Esta funcionalidad se la agregue a mi pequeño clon, ahora se puede definir Middlewares que reciban el store (estado) y las acciones que se han lanzado, el ejemplo mas común es hacer un logger de las acciones. Este el ejemplo de este Middleware:

 

Como se puede ver tiene una firma muy parecida a el logger que viene en la documentación de Redux

 

Distribuir contenido