style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Java Standard Edition

Spring Batch, más allá del tutorial

Parte de la operación de un sistema en el que llevo ya años trabajando, consiste en generar varios reportes diarios para conciliar con proveedores. El proceso es automatizado y ya hay componentes reutilizables para realizar esto, pero la cantidad de productos últimamente ha crecido bastante y esto trae un problema de desempeño, pues cada reporte lee la misma tabla, pero con criterios diferentes, para obtener prácticamente el mismo tipo de datos: Las ventas de X producto de un día.

La tabla en cuestión contiene las ventas de todos los productos, de modo que lo que ocurre diariamente es que se realiza la misma consulta, una vez por producto; algo así como SELECT * FROM venta WHERE producto=? y solamente cambia el producto. Si tenemos 20 productos, pues son 20 consultas a la tabla.

Ay

Alguien podría ayudarme con este ejercicio

Realice un

Ayuda con este

Alguien

Ayuda para un editor de textos en Java

Tengo problemas al pintar una palabra recervada en un JTextPane

Lo que hago es:

String palabraR = "Hola";
int longitud = palabraR.length();
int iniciall = editor.getText().indexOf(palabraR);
int finall = inicial + palabraR.length();

    editor.setText(editor.getText().substring(0, inciall)+"<font color='green'>"+editor.getText().substring(inciall, finall)+"</font> "+editor.getText().substring(finall, editor.getText().length()));

Pero solo pinta la primera coincidencia, y quisiera que me ayuden a que pinten todas las coincidencias

Multiples Data Sources

Buen dia espero alguen tenga alguna referencia sobre mi tema, tengo un proyecto el cual debe de usar mas de un datasource, mi pregunta es, de que manera puedo hacer q solo seleccione uno datasource al momento de que el usuario ingrese al sistema. Saludos...

Permisos de log4j en el properties

Hola a todos buenas tardes,

Actualmente tengo un archviv log4j.properties configurado en mi proyecto Java:

## Configuracion Log4j
log4j.rootLogger= DEBUG, toConsole, toFile
# Indica el alias para la salida de log, podemos tener varias.

## Appender Console ##
log4j.appender.toConsole = org.apache.log4j.ConsoleAppender
# Consola utiliza PatternLayout
log4j.appender.toConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.toConsole.layout.ConversionPattern=[%d] [%t] %5p %c.%M %x => %m%n

## Appender File Log ##
log4j.appender.toFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.toFile.File = ../log/logFile_Log.log
log4j.appender.toFile.DatePattern ='.'yyyy-MM-dd
log4j.appender.toFile.layout=org.apache.log4j.PatternLayout
log4j.appender.toFile.layout.ConversionPattern=[%d] [%t] %5p %c.%M %x %L => %m%n

En la primera ejecución de mi Jar no hay problema con la creación del archivo.log.

El escenario es el siguiente:

Tengo un servidor Debian Linux, donde le di acceso a 5 usuarios para que ejecuten los shells que invocan los jar.
Todos los usuario los integre a un grupo con permisos umask 002.

 

Guardar Archivos en SQL Server

A continuación les comparto un ejemplo de cómo guardar archivos en una BD SQL Server, adicionalmente pueden leer el mime del archivo para la hora de la decodificación.

public String GuardarDocumento(String nombre, String valor, String path_img, int id_movimiento) throws SQLException, FileNotFoundException {
        Conexion objConexion = new Conexion();
        String salida = "";
        int len;
        String query = "insert into documentos(nombre_documento,ruta_documento,movimiento,archivo_binario) values(?,?,?,?)";
        PreparedStatement ps = objConexion.Conectar().prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
        try {            
            File file = new File(path_img);
            FileInputStream fis = new FileInputStream(file);
            len = (int) file.length();
            ps.setString(1, nombre);//Nombre del Documento
            ps.setString(2, valor);//ruta al doc
            ps.setInt(3, id_movimiento);//id_movimiento            
            ps.setBinaryStream(4, fis, len);
            ps.executeUpdate();
            ps.close();
            salida = "OK";
        } catch (Exception e) {

Dagger 2

Inyección de dependencias con Dagger 2

Dagger 2 es un framework de inyección de dependencias que se diferencia de otros en que la inyección se hace en tiempo de compilación con código generado en vez de en tiempo de ejecución utilizando reflection, esto tiene como ventajar principal la mejora en el desempeño de la aplicación pero tambien tiene otros como una mejor trazabilidad en los stacktraces cuando algo sale mal ( en vez de solo ver Method.invoke, invoke por todos lados ) o que se puede obtener errores de dependencias durante la fase de compilación en vez de en runtime.

Aquí hay un video donde se explica que es, cómo se compara con otros ( Guice, Spring, Dagger 1) y los beneficios que tiene.

Ejemplo

Voy a hacer un ejemplo que espero me salga sencillo:

Digamos que tengo una app para buscar palabras en páginas web, lo componen tres clases:

- SearchApp contiene el main
- SearchInPage hace la búsqueda
- HttpClient obtiene el contenido de una página

Log4j para Creación de Eventos de Log

  • Log4j, un framework especializado para el logging o creación de bitácoras en las aplicaciones Java.
  • Log4j es un framework que ofrece una forma jerárquica de insertar sentencias de log dentro de una aplicación Java. Con él, se tienen disponibles múltiples formatos de salida, y múltiples niveles de información de log.
  • Los loggers pueden tener niveles asignados. Los niveles normales que puede tener un logger son, de menor a mayor prioridad:

  • TRACE: Se usa para información más detallada que el nivel debug.
  • DEBUG: Se utiliza para mensajes de información detallada que son útiles para debugear una aplicación.
  • INFO: Se utiliza para mensajes de información que resaltan el progreso de la aplicación de una forma general.
  • WARN: Se utiliza para situaciones que podrían ser potencialmente dañinas.
  • ERROR: Se usa para eventos de error que podrían permitir que la aplicación continúe ejecutándose.
  • FATAL: Se usa para errores muy graves, que podrían hacer que la aplicación dejara de funcionar.
  • Bueno crearemos un ejemplo sencillo de la utilización en una clase.

    AYUDA POR FAVOR

    NECESITO AYUDA PORFAVOR ANDO HACIENDO UN PROGRAMA Q QUE ME TENGA QUE REALIZAR LA SIGUIENTE FUNCION: INGRESAR POR TECLADO CUALQUIER NOMBRE Y QUE TE CREE UNA MATRIZ DEL TAMAÑA DE ESE NOMBRE Y APARTE QUE DIGA CUANTAS LETRAS TIENE ESE NOMBRE Y DIGA CUAL ES LA DIAGONAL DE ESA MATRIZ...!!!!

    ESTO ES LO QUE TENGO ECHO PORFAVOR LE AGRADECERIA LA AYUDA

    package primer_1;
    import java.util.*;
    import javax.swing.JOptionPane;
    public class diagonal{

            public static void main(String[] args) {
                    // TODO Auto-generated method stub
                   
                    String nombre=JOptionPane.showInputDialog("Ingrese su nombre: ");
                   
                            System.out.println("Mi nombre " + nombre +" tiene" +" "+ nombre.length()+" letras. ");
                   
                                    for(int i=0; i<nombre.length(); i++){
                                           
                                           
                                            int [][] matriz= new int[i][i];
                                           
                                                    System.out.print(nombre.charAt(i) +"");
                                                   
                                   
                                    }
            }
    }

    Distribuir contenido

    style="display:inline-block;width:728px;height:90px"
    data-ad-client="ca-pub-5164839828746352"
    data-ad-slot="7563230308">