Bienvenido a Java Mexico

Java México es una comunidad de desarrolladores mexicanos en el lenguaje Java.

Este sitio es colaborativo, automáticamente al registrarte obtienes un Blog para compartir tus conocimientos o información acerca del lenguaje. Antes de publicar en tu blog o los foros por favor lee los lineamientos de publicación.

Para dudas y problemas con respecto al lenguaje Java puedes visitar los Foros de Discusión.

También puedes responder nuestra encuesta para saber en que estado vives!

Crear una aplicación web rápidamente usando Spring Boot

Estoy trabajando en un proyecto nuevo en el cual me dieron carta blanca para poder escoger con que trabajar. Lo que tuve bien en claro es que quería empezar a usar Java 8 y como ya tengo algo de experiencia con Spring decidi también usar este framework.

Si ustedes ya tienen experiencia usando Spring, saben que para usar Spring MVC hay que configurar muchas cosas antes de poder ver al menos una página web sencilla. Entre todo esto hay que configurar el deployment descriptor (i.e. el archivo web.xml); o si estan usando Java EE (Evil Edition?) con un contenedor que soporte el spec de Servlet 3.0+, igual necesitan configurar un WebApplicationInitializer.

Pero vamos, aunque hoy en día es posible configurar Spring sin usar una sola línea de XML sigue siendo mucho código por escribir solo para empezar (y ni siquiera he tocado el configurar otros frameworks como Hibernate, Thymeleaf, JSF, etc.).

Ayuda Formulario Login

Buen día compañeros el motivo de mi entrada es la siguiente, espero alguien pueda apoyarme.

tengo un formulario login tipico, pide usuario, contraseña un boton para entrar y uno para salir.

en mi clase tengo un metodo llamado acceder que es el siguiente.

void acceder(String usuario, String pass) {
        String usu = "";
        String pas = "";

        String sql = "SELECT * FROM usuario WHERE usuario='" + usuario + "' && password='" + pass + "'";
        try {
            Statement st = cn.createStatement();
            ResultSet rs = st.executeQuery(sql);
            while (rs.next()) {
                usu = rs.getString("usuario");
                pas = rs.getString("password");
            }

            if (usu.equals(usuario) && pas.equals(pass)) {
                this.setVisible(false);
                InterfacePrincipal principal = new InterfacePrincipal();
                principal.setVisible(true);
            } else {
                JOptionPane.showMessageDialog(null, "Usuario y/o Contraseña no Validos");
            }
        } catch (SQLException ex) {

Autocompletar con JSON(Gson), Ajax, jQuery, Servlets y PostgreSQL

¡¡¡ Hola !!!

Este es mi segundo aporte a esta comunidad, se trata de un trabajo que me dejaron en mi servicio social el cual se integra con una aplicación web la cual maneja una gran cantidad de datos (RFC de contribuyentes)...

Espero les sea útil esto y como he dicho antes cual quier mejora o error por favor coméntenlo. GRACIAS

Clase conexión y query´s

public class Model{
public ArrayList<String> getNombres(String nombre)throws Exception{
                 ArrayList<String> list = new ArrayList<String>();
                 String data;
                 try( Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/BandasRock");              
                           PreparedStatement ps1 = conn.prepareStatement("SELECT * FROM nombres  WHERE  nombres LIKE ?");
                         
                           ResultSet rs = ps1.executeQuery()
                                       
                                 ) {
                                 
                                   ps1.setString(1, nombre + "%");
                                while (rs.next()) {
                                         data = rs.getString("nombres");
                         list.add(data);
                                }
                        } catch (SQLException e) {
                            e.getCause();
                        }
                 return list;
                 }
         
}

Servlet llamado "controlador" por el método GET

 

Ceylon 1.1.0 “Ultimate Ship The Second”

Ceylon 1.1.0 “Ultimate Ship The Second” listo para ser descargado.

"Listo"
shared void run(){
  print("Ceylon 1.1.0 Ultimate Ship The Second ");
}

Ceylon 1.1

Hoy liberamos la versión 1.1 de Ceylon:

http://ceylon-lang.org/blog/2014/10/09/ceylon-1/

Después de 10 meses de arduo trabajo, esta versión contiene una gran cantidad de correcciones (más de mil issues procesados), mejoras y optimizaciones, incluyendo:

  • Optimizaciones en ambos compiladores para reducir tiempos de compilación
  • Optimizaciones al IDE, para tener mejores tiempos de respuesta
  • Optimizaciones al código generado para un mejor desempeño del código ejecutable
  • Varios módulos nuevos en el SDK
  • Integración con vert.x
  • Interfaces dinámicas para el backend de JavaScript, de modo que se puedan asignar tipos estáticos a estructuras que cumplan con las características definidas en los mismos

Espero que lo prueben pronto, y nos den su opinión y comentarios.

Kata de palíndromos con Streams (en Scala)

Pues resulta y pasa que para una entrevista tuve que resolver un problema cuya definición (a lo que recuerdo) era:

Dada una lista de palabras, por cada elemento hacer lo siguiente:

  • Obtener una combinación de las letras de la palabra las cuales sea un palíndromo, i.e. una palabra que se lee indistinguiblemente al derecho o al revés; imprimirla en consola.
  • Si no se encuentra dicha combinación, imprimir "-1" en la consola.

E.g., teniendo la lista de palabras "racecar", "icicv", "dar", deberia de imprimirse algo como "racecar", "civic", -1.

Cómo usar los "templates" de eclipse - Guía básica

 

Seguramente habrás notado que cuando escribes una palabra mágica (por ejemplo main, como en la siguiente imagen) y luego presiones Ctrl + Espacio, te aparece algo como lo siguiente:

 

 

Y si seleccionas la primera opción, el código del lado derecho de la ventana emergente se insertará en tu editor. Dentro de eclipse, a esto se conoce como templates.

Los siguientes dos ejemplos te pueden dar una idea de cómo agregar tus propios templates.


 

Template para Singleton

El template para el insertar el main se encuentra dentro de las Window > Preferences > Java > Editor > Templates

Los templates son fragmentos de código de tu lenguaje favorito con unas variables especiales que eclipse reemplaza en el momento de la inserción. El template que utilizaremos para el patrón de diseño singleton es el siguiente:

/**
 * La referencia de la instancia del singleton. No es construida hasta que se carga la clase.
 */

Usando el ListeningExecutorService de Guava

Antes de conociera algo de Hystrix en una aplicacion que mantengo tuvimos varios problemas con un servicio de notificaciones. Este servicio dependia de otro servidor que, como todo, a veces fallaba.

El detalle es que el proceso de notificación se hacía durante el proceso principal de la aplicacion; cuando se realizaban las llamadas correspondientes al servicio el proceso se detiene o lanzaba excepción... pero esto era en el mejor de los casos, también ocurrio que no especificamos timeouts para el servicio y por lo tanto el proceso principal de la aplicacion podia quedarse varado hasta por un día (que era el timeout por defecto del socket que se abría por medio de otra libreria).

En fin, el perder las notificaciones no era opción y tampoco lo era detener el proceso hasta que estas notificaciones se entregaran. Por lo tanto, optamos por hacer algo como esto:

Distribuir contenido