Java | POO, JDBC, Servlets, JavaEE, Web Services, JSF, EJB, JPA, PrimeFaces, Hibernate, Spring, Struts
📦 Install Gitpot Describe your dev environments as code and automate the last missing piece in your DevOps pipeline.
Tabla de contenidos
Operadores Java
Fundamentos Java
Programacion Java
Java con JDBC
La API de Java Database Connectivity (JDBC) proporciona acceso universal a los datos desde el lenguaje de programación Java. Con la API de JDBC, puede acceder prácticamente a cualquier fuente de datos, desde bases de datos relacionales hasta hojas de cálculo y archivos planos. La tecnología JDBC también proporciona una base común sobre la cual se pueden construir herramientas e interfaces alternativas.
Oracle Documentacion
Servlets y JSP
Los Servlets son las respuesta de la tecnología Java a la programación CGI. Son programas que se ejecutan en un servidor Web y construyen páginas Web. Construir páginas Web al vuelo es útil (y comunmente usado)
JavaServer Faces
Java EE
Numeration
Check
Topic
Quantization
Edit Gitpot
Downloads
link
H1
✔️
JavaEE
☕
💾
Atras
Velocidad
Spring Boot Learning
DOC
Inferencia
uso de var
Tajo de teclado = soutv + tab
James Gosling
James Gosling, OC (19 de mayo de 1955 cerca de Calgary, Alberta, Canadá) es un famoso científico de la computación conocido como el padre del lenguaje de programación Java.
En 1977, Gosling se licenció en ciencias de la computación por la Universidad de Calgary. En 1983, se doctoró por la Universidad Carnegie Mellon, su tesis doctoral se tituló La manipulación algebraica de las limitaciones. Su director de tesis fue Raj Reddy. Mientras trabajaba para su doctorado, escribió una versión de Emacs (Gosling Emacs), y antes de unirse a Sun Microsystems, construyó una versión multi-procesador de Unix, así como varios compiladores y sistemas de correo.
nighthacks.com
Incluye
Plataforma Java, Edición Estándar (Java Platform, Standard Edition), o Java SE (antes J2SE).
Plataforma Java, Edición Empresa (Java Platform, Enterprise Edition), o Java EE (antes J2EE).
Plataforma Java, Edición Micro (Java Platform, Micro Edition), o Java ME (antes J2ME).
Caracteristicas
Tendencia - Google Trends Java
Lenguaje java fuertemente tipado
Lenguaje Orientao a Objeto (POO)
Esta en todas partes
Poupular
Popularidad a Nivel Nacional
Ejemplo Java
Las plataformas de lenguaje de programación Java
Hay cuatro plataformas del lenguaje de programación Java:
Plataforma Java, Edición Estándar (Java SE)
Plataforma Java, Enterprise Edition (Java EE)
Plataforma Java, Micro Edition (Java ME)
Javafx
# #####################
# ## Grafico ###
# #####################
Java SE [1]
|
| Java EE [2]
| |
| | Java ME [3]
| | |
| | | Java FX [4]
| | | |
| | | |
| | | |
| | | | _ _ _ _ _ _ _ _ _ _
| | | _ _ _ _ _ _ _ _ |
| | _ _ _ _ _ | |
| | | |
Edición Enterprise Java Web
Estándar Edition Micro
Edition
Plataformas
Java SE
Cuando la mayoría de la gente piensa en el lenguaje de programación Java, piensan en la API de Java SE. La API de Java SE proporciona la funcionalidad principal del lenguaje de programación Java. Define todo, desde los tipos y objetos básicos del lenguaje de programación Java hasta las clases de alto nivel que se utilizan para redes, seguridad, acceso a bases de datos, desarrollo de interfaz gráfica de usuario (GUI) y análisis XML.
Además de la API principal, la plataforma Java SE consta de una máquina virtual, herramientas de desarrollo, tecnologías de implementación y otras bibliotecas de clases y kits de herramientas comúnmente utilizados en aplicaciones de tecnología Java.
Java EE
La plataforma Java EE se basa en la plataforma Java SE. La plataforma Java EE proporciona una API y un entorno de tiempo de ejecución para desarrollar y ejecutar aplicaciones de red seguras, escalables, fiables y de gran escalado.
Java ME
La plataforma Java ME proporciona una API y una máquina virtual de espacio pequeño para ejecutar aplicaciones de lenguaje de programación Java en dispositivos pequeños, como teléfonos móviles. La API es un subconjunto de la API de Java SE, junto con bibliotecas de clases especiales útiles para el desarrollo de aplicaciones de dispositivos pequeños. Las aplicaciones Java ME son a menudo clientes de servicios de plataforma Java EE.
Javafx
JavaFX es una plataforma para crear aplicaciones de Internet enriquecidas mediante una API ligera de interfaz de usuario. Las aplicaciones JavaFX utilizan motores de medios y gráficos acelerados por hardware para aprovechar los clientes de mayor rendimiento y una apariencia moderna, así como API de alto nivel para conectarse a orígenes de datos en red. Las aplicaciones JavaFX pueden ser clientes de servicios de plataforma Java EE.
Instalacion
Java SE
📦 Instalador JDK 8 Instalador Oracle JDK Java SE 8 Development
📦 Instalador JDK 9 Instalador Oracle JDK Java SE 9 Development
📦 Instalador JDK 10 Instalador Oracle JDK Java SE 10 Development
📦 Instalador JDK 11 Instalador Oracle JDK Java SE Development
📦 Instalador JDK 12 Instalador Oracle JDK Java SE 12 Development
📦 Instalador JDK 13 Instalador Oracle JDK Java SE 13 Development
📦 Instalador JDK 14 Instalador Oracle JDK Java SE 14 Development
📦 Instalador JDK 15 Instalador Oracle JDK Java SE 15 Development
📦 Instalador JDK 16 Instalador Oracle JDK Java SE 16 Development
📦 Instalador JDK 17 Instalador Oracle JDK Java SE 17 Development
📦 Instalador JDK 19 Instalador Oracle JDK Java SE 19 Development
📦 Instalador JDK 20 Instalador Oracle JDK Java SE 20 Development
📦 Instalador JDK 21 Instalador Oracle JDK Java SE 21 Development
IDE Netbeans
📦 Instalador Netbeans 8 Instalador Apache NetBeans 8.
📦 Instalador Netbeans 9 Instalador Apache NetBeans 9.
📦 Instalador Netbeans 10 Instalador Apache NetBeans 10.
📦 Instalador Netbeans 11 Instalador Apache NetBeans 11.
📦 Instalador Netbeans 12 Instalador Apache NetBeans 12.
📦 Instalador Netbeans 13 Instalador Apache NetBeans 13.
📦 Instalador Netbeans 14 Instalador Apache NetBeans 14.
📦 Instalador Netbeans 15 Instalador Apache NetBeans 15.
📦 Instalador Netbeans 16 Instalador Apache NetBeans 16.
📦 Instalador Netbeans 17 Instalador Apache NetBeans 17.
📦 Instalador Netbeans 18 Instalador Apache NetBeans 18.
📦 Instalador Netbeans 19 Instalador Apache NetBeans 19.
📦 Instalador Netbeans 20 Instalador Apache NetBeans 20.
Visual Studio Code
📦 Instalador Visual Studio Code Code editing.Redefined.
Spring Tool Suite
📦 Instalardor Spring Boot IDE Spring Tools 4 is the next generation of Spring tooling for your favorite coding environment.
Eclipse
📦 Instalador Eclipse IDE 2020-06R Instalador Eclipse Technology.
📦 Instalador Eclipse IDE 2020-09R Instalador Eclipse Technology.
📦 Instalador Eclipse IDE 2020-12R Instalador Eclipse Technology.
📦 Instalador Eclipse IDE 2021-03 Instalador Eclipse Technology.
📦 Instalador Eclipse IDE 2021-06 Instalador Eclipse Technology.
📦 Instalador Eclipse IDE 2021-09 Instalador Eclipse Technology.
📦 Instalador Eclipse IDE 2021-12 Instalador Eclipse Technology.
📦 Instalador Eclipse IDE 2022-03 Instalador Eclipse Technology.
📦 Instalador Eclipse IDE 2022-06 Instalador Eclipse Technology.
📦 Instalador Eclipse IDE 2023-09 Instalador Eclipse Technology.
📦 Instalador Eclipse IDE 2023-12R Instalador Eclipse Technology.
JetBrains
📦 Instalador IntelliJ IDEA Instalador IntelliJ IDEA de jetbrains.
MySQL
📦 Instalador MySQL Instalador MySQL Community Downloads.
Oracle
📦 Instalador Oracle XE Instalador Oracle Database Express Edition.
BM Db2® Database
📦 IBM Db2® Database Instalador Software de Gestión de Datos | IBM.
Hola Mundo
Concatenacion
public static void main (String args []) {
var usuario = "Juan" ;
var titulo = "Ingeniero" ;
var union = titulo + " " + usuario ;
System .out .println ("union = " + union );
var i = 3 ;
var j = 4 ;
System .out .println (i + j );//se realiza la suma de numeros
System .out .println (i + j + usuario ); //Evaluación de izq a der, realiza suma
System .out .println (usuario + i + j );//contexto cadena, todo es una cadena
System .out .println (usuario + (i + j ));//uso de parentesis modifican la prioridad en la evaluacion
}
Scanner
System .out .println ("Escribe tu nombre: " );
Scanner consola = new Scanner (System .in );
var usuario = consola .nextLine ();
System .out .println ("usuario = " + usuario );
Tipos Primitivos
MIN_VALUE
y MAX_VALUE
Tipos Primitivos Enteros
public static void main (String args []) {
/*
tipos primitivos enteros: byte, short, int, long
*/
byte numeroByte = (byte ) 129 ;
System .out .println ("Valor byte:" + numeroByte );
System .out .println ("Valor minimo byte:" + Byte .MIN_VALUE );
System .out .println ("Valor maximo byte:" + Byte .MAX_VALUE );
short numeroShort = (short )32768 ;
System .out .println ("numeroShort = " + numeroShort );
System .out .println ("Valor minimo short:" + Short .MIN_VALUE );
System .out .println ("Valor maximo short:" + Short .MAX_VALUE );
int numeroInt = (int )2147483648L ;
System .out .println ("numeroInt = " + numeroInt );
System .out .println ("Valor minimo int:" + Integer .MIN_VALUE );
System .out .println ("Valor maximo int:" + Integer .MAX_VALUE );
long numeroLong = 9223372036854775807L ;
System .out .println ("numeroLong = " + numeroLong );
System .out .println ("Valor minimo long:" + Long .MIN_VALUE );
System .out .println ("Valor maximo long:" + Long .MAX_VALUE );
}
Tipos Primitivos Char
ublic static void main (String args []) {
char miCaracter = 'a' ;
System .out .println ("miCaracter = " + miCaracter );
char varChar = '\u0021' ;
System .out .println ("varChar = " + varChar );
char varCharDecimal = 33 ;
System .out .println ("varCharDecimal = " + varCharDecimal );
char varCharSimbolo = '!' ;
System .out .println ("varCharSimbolo = " + varCharSimbolo );
var varChar1 = '\u0021' ;
System .out .println ("varChar1 = " + varChar1 );
var varCharDecimal2 = 33 ;
System .out .println ("varCharDecimal2 = " + varCharDecimal2 );
var varCharSimbolo3 = '!' ;
System .out .println ("varCharSimbolo3 = " + varCharSimbolo3 );
int variableEnteraSimbolo = '!' ;
System .out .println ("variableEnteraSimbolo = " + variableEnteraSimbolo );
int letra = 'A' ;
System .out .println ("letra = " + letra );
}
Tipos Primitivos Boolean
public static void main (String args []) {
/*
tipos primitivos de tipo flotante: float y double
*/
float numeroFloat = (float )3.4028235E38D ;
System .out .println ("numeroFloat = " + numeroFloat );
System .out .println ("Valor minimo tipo float: " + Float .MIN_VALUE );
System .out .println ("Valor maximo tipo float: " + Float .MAX_VALUE );
double numeroDouble = 1.7976931348623157E308 ;
System .out .println ("numeroDouble = " + numeroDouble );
System .out .println ("Valor minimo tipo double: " + Double .MIN_VALUE );
System .out .println ("Valor maximo tipo double: " + Double .MAX_VALUE );
}
Performance
Variables
byte - 8 bits
short - 16 bit
int - 32 bits
long - 64 bits
float -32 bits
double -64 bits
char - 16 bits
boolean - 1 bits
Tipos de Datos Primitivos en Java
byte
Representa un tipo de dato de 8 bits con signo. De tal manera que puede almacenar los valores numéricos de -128 a 127.
short
Representa un tipo de dato de 16 bits con signo. De esta manera almacena valores numéricos de -32.768 a 32.767.
int
Es un tipo de dato de 32 bits con signo para almacenar valores numéricos. Cuyo valor mínimo es -2^31 y el valor máximo 2^31-1.
float
Es un tipo dato para almacenar números en coma flotante con precisión simple de 32 bits.
double
Es un tipo de dato para almacenar números en coma flotante con doble precisión de 64 bits.
boolean
Sirve para definir tipos de datos booleanos. Es decir, aquellos que tienen un valor de true o false. Ocupa 1 bit de información.
char
Es un tipo de datos que representa a un carácter Unicode sencillo de 16 bits.
Valores por defecto de los tipos de datos primitivos
Dato Primitivo
Valor por Defecto
byte
0
short
0
int
0
long
0L
float
0.0f
double
0.0d
char
‘u0000’
String
null
boolean
false
Variables-II
Constantes
Ingresar Datos Consola
Ingresar Dato ViaShow InputDialog
Operadores Matematicos
Operadores Matematicos Cortos
Operador Incremental Decremental
Operaciones Matematicas Math
Calcular volumen de un cilindro
Manejo de Fechas
Condicionales
Ejemplo de Condiciones
public static void main (String [] args ) {
// condicionales (Sentencia IF, Else)
Scanner entra = new Scanner (System .in );
int numUser , numSis ;
numSis = (int ) (Math .random ()*10 );
System .out .println ("Ingresa este numero " +numSis +": " );
numUser = entra .nextInt ();
if (numUser == numSis ){
System .out .println ("Coinciden " );
}else {
System .out .println ("no coinciden " );
}
}
Escalabilidad
Condicionales II
Scanner entrada = new Scanner (System .in );
System .out .println ("Sleccione una Opcion: \n 1: Acceso\n 2: Confguracion\n 3: Ayuda" );
int seleccione = entrada .nextInt ();
switch (seleccione ){
case 1 : System .out .println ("Seleccionaleste el Acceso" );
break ;
case 2 : System .out .println ("Seleccionaleste Configuracion" );
break ;
case 3 : System .out .println ("Seleccionaleste Ayuda" );
break ;
default :
System .out .println ("Opcion no Valida" );
break ;
}
Condicionales III
Scanner entrada = new Scanner (System .in );
System .out .println ("Escriba una opcion:\n acceso\n confguracion\n ayuda" );
String seleccione = entrada .nextLine ();
seleccione = seleccione .toLowerCase ();
switch (seleccione ){
case "acceso" :
System .out .println ("Seleccionaleste el acceso" );
break ;
case "confguracion" :
System .out .println ("Seleccionaleste configuracion" );
break ;
case "ayuda" :
System .out .println ("Seleccionaleste ayuda" );
break ;
default :
System .out .println ("Opcion no Valida" );
break ;
}
public static void main (String args []) {
var mes = 4 ;
var estacion = "Estacion desconocida" ;
switch (mes ){
case 1 : case 2 : case 12 :
estacion = "Invierno" ;
break ;
case 3 : case 4 : case 5 :
estacion = "Primavera" ;
break ;
case 6 : case 7 : case 8 :
estacion = "Verano" ;
break ;
case 9 : case 10 : case 11 :
estacion = "Otonio" ;
break ;
}
ystem .out .println ("estacion = " + estacion );
}
Adivinar numero random
Ciclo While
Ciclo Do While
Ciclo For
Ciclo foreach
Escalera con For
Arreglos
Un array (arreglo) en Java es una estructura de datos que nos permite almacenar un conjunto de datos de un mismo tipo. El tamaño de los arrays se declara en un primer momento y no puede cambiar luego durante la ejecución del programa, como sí puede hacerse en otros lenguajes.
Carpeta
Link
Home
Code
Version
Estado
Arreglos
✔️
Atras
yes
yes
✔️
Mezclar 2 Arreglos
public static void main (String [] args ) {
// mezclar2Arreglos
int a []=new int [5 ];
int b []=new int [5 ];
int c []=new int [10 ];
for (int i =0 ;i <5 ;i ++){
a [i ]= Integer .parseInt (JOptionPane .showInputDialog ("Ingresa el valor " + (i +1 )+" del arreglo a" ));
}
for (int i =0 ;i <5 ;i ++){
b [i ]= Integer .parseInt (JOptionPane .showInputDialog ("Ingresa el valor " + (i +1 )+" del arreglo b" ));
}
int j =0 ;
for (int i =0 ;i <5 ;i ++){
c [j ]=a [i ];
j ++;
c [j ]=b [i ];
j ++;
}
for (int elemento :c ){
System .out .println (elemento );
}
Palindromos
, también llamado palíndromo, palíndroma o palindroma, es una palabra o frase que se lee igual en un sentido que en otro (por ejemplo, Ana)
Ordenamientos Metodo de la Burbuja
hace múltiples pasadas a lo largo de una lista. Compara los ítems adyacentes e intercambia los que no están en orden. Cada pasada a lo largo de la lista ubica el siguiente valor más grande en su lugar apropiado. En esencia, cada ítem “burbujea” hasta el lugar al que pertenece.
Ordenamientos Metodo de la Burbuja Mejorado
Ordenamientos por Seleccion
Busqueda Secuencial
Busqueda Binaria
Look at the following code:
while (inf <=sup ){
centro =(sup +inf )/2 ;
if (elementos [centro ] == numBuscar ){
bandera = true ;
break ;
}
else if (numBuscar < elementos [centro ]){
sup =centro -1 ;
}
else {
inf = centro +1 ;
}
Operadores Java
Operadores Unitarios
public static void main (String args []) {
var a = 3 ;
var b = -a ;
System .out .println ("a = " + a );
System .out .println ("b = " + b );
var c = true ;
var d = !c ;
System .out .println ("c = " + c );
System .out .println ("d = " + d );
//incremento
//1.preincremento (simbolo antes de la variable)
var e = 3 ;
var f = ++e ;//primero se incrementa la variable y despues se usa su valor
System .out .println ("e = " + e );
System .out .println ("f = " + f );
//2.postincremento (simbolo despues de la variable)
var g = 5 ;
var h = g ++;//primero se utiliza el valor y despues se incrementa
System .out .println ("g = " + g );//teniamos pendiente un incremento
System .out .println ("h = " + h );
//decremento
//1.predecremento
var i = 2 ;
var j = --i ;
System .out .println ("i = " + i );//ya esta drecrementada
System .out .println ("j = " + j );
//2.postdecremento
var k = 4 ;
var l = k --;//primero se usa el valor de la variable y queda pendiente decremento
System .out .println ("k = " + k );//tenia pendiente un drecremento
System .out .println ("l = " + l );
}
Operadores Ternario
Break y Continue
Fundamentos Java
Clases en Java
Creacion de Metodos
Operador This
Uso opcional es un apractica comun, , hace referecia a un atributo de la clase
Al ver this nos dice que hace refereciia un atributo de la clases
this .a = a ; // El argumento a sse asigna al atributo this.a
this .b = a ;
Constructores
Sobrecarga Constructores
Alcance de Variables
Proyecto caja
Paso por valor
Paso por referencia
Return Null en Java
Uso del This
Uso del This 2
Encapsulamiento
getSueldo()
: retorna
setSueldo()
: Modifica
Ejemplo Encapsulamiento
public String getNombre (){
return this .nombre ;
}
public void setNombre (String nombre ){ // set modificar
this .nombre = nombre ;
}
Metodo toString
Contexto estatico
Contexto Estatico y Contexto Dinamico
palabra static
Contexto estatco 2
Herencia
La palabra clave super en Java es una variable de referencia que se usa para referir objetos de clase padre.
Sobrecarga de Contructores
Sobrecarga de Metodos
Paquetes
Carpeta
Link
Home
Code
Version
Estado
Paquete
✔️
Atras
yes
yes
✔️
Palabra Final
Uso de la Palabra Final
En variables: Evita cambiar el valor que almacena la variable
En Metodos: Evitar que se modifique la definicion de un metodos desde una subclases
En Clases: Evita que se cree una subclase
/*Ejemplo de constante, no se podra modificar*/
public final static int MI_CONSTATNE = 1 ;
Arreglo III
public static void main (String [] args ) {
int edades [] = new int [3 ];
System .out .println ("edades = " + edades );
edades [0 ] = 10 ;
System .out .println ("edades o = " + edades [0 ] );
for (int i = 0 ; i <edades .length ; i ++){
System .out .println ("edades elemento" + i + ":" + edades [i ]);
}
// Sintaxis resumida
String frutas [] = {"Naranja" , "Platano" , "Manzana" };
for (int i = 0 ; i < frutas .length ; i ++) {
System .out .println ("Frutas = " + frutas [i ]);
}
Matrices
UML
[https://www.umletino.com/ ] - Online Browser
[https://www.umlet.com/ ] - Plugin Downloads
Carpeta
Link
Home
Code
Version
Estado
UML
✔️
Atras
yes
yes
✔️
Sistema de Ventas
Proyecto Mundo PC
Programacion Java
Argumentos Variables en Java
Manejo de Enumeraciones
Manejo de Enumeraciones I
Bloque Inicializacion
ForEach
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
C5
ForEac
✔️
✔️
yes
yes
✔️
💾
Atras
Autoboxing Unboxing
int Integer
Log - Long
float - Float
double - Double
boolea - Boolean
byte - Byte
char -Character
short - Short
Modificadores de acceso
Uso de Modificadores de Acceso en Java - de menos a mas
MODIFICADOR
CLASE
VARIABLE
METODO
CONSTRUCTOR
public
Si
Si
Si
SI
protected
No
Si
Si
SI
default *
Si
Si
Si
SI
private
No
Si
Si
SI
Sobreescritura
Usando Eclpise
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
C11
Sobreescritura
✔️
✔️
yes
yes
✔️
💾
Atras
Polimorfismo
Polimorfismo en URML
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
C12
Polimorfismo
✔️
✔️
yes
yes
✔️
💾
Atras
Palabra InstaceOf
¿esta apuntando a gerente ? empleado = new Empleado ? falso apunta a empleado
Conversion de Objetos
Clase Object
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
C16
Clase Object
✔️
✔️
yes
yes
✔️
💾
Atras
Clases Abstractas
public abstract class FiguraGeometica {
//las clase padre no define ocomportamiento
abstract void dibujar ();
}
pulic class Rectangulo extends FiguraGometrica {
void dibujar (){
// comportamiento de la subclase
}
}
Manejo de interfaces
Manejo de JavaBeans
Manejo de Excepciones
API de collections
Manejo de Generics
Manejo de Archvos
Ejemplo
ublic class ManejoArchivos {
public static void crearArchivo (String nombreArchivo ) {
File archivo = new File (nombreArchivo );
/* generado automaticamente ayudandonos con netbeans*/
try {
PrintWriter salida = new PrintWriter (archivo );
salida .close ();
System .out .println ("Se ha creado el archivo " );
} catch (FileNotFoundException ex ) {
ex .printStackTrace (System .out );
}
}
public static void escribirArchivo (String nombreArchivo , String contenido ) {
File archivo = new File (nombreArchivo );
/* generado automaticamente ayudandonos con netbeans*/
try {
PrintWriter salida = new PrintWriter (archivo );
salida .print (contenido );
salida .close ();
System .out .println ("Se ha escrito en el archivo" );
} catch (FileNotFoundException ex ) {
ex .printStackTrace (System .out );
}
}
public static void anexaArchivo (String nombreArchivo , String contenido ) {
File archivo = new File (nombreArchivo );
/* generado automaticamente ayudandonos con netbeans*/
try {
PrintWriter salida = new PrintWriter (new FileWriter (archivo , true ));
salida .print (contenido );
salida .close ();
System .out .println ("Se ha anexado en el archivo" );
} catch (FileNotFoundException ex ) {
ex .printStackTrace (System .out );
} catch (IOException ex ) {
ex .printStackTrace (System .out );
}
}
public static void leerArchivo (String nombreArchivo ) {
var archivo = new File (nombreArchivo );
try {
//BufferredReader nos ayuda a leer archivos
var entrada = new BufferedReader (new FileReader (archivo ));
var lectura = entrada .readLine ();
while (lectura != null ) {
System .out .println ("lectura = " + lectura );
lectura = entrada .readLine ();
}
entrada .close ();
} catch (FileNotFoundException ex ) {
ex .printStackTrace (System .out );
} catch (IOException ex ) {
ex .printStackTrace (System .out );
}
}
}
Java con JDBC
Descargar e Instalar Oracle
Descarga Windows
Descargar ORACLE XE 18
📦 Instalador Oracle XE InstaladorOracle Database Express Edition.
Descargar ORACLE Developer
Ejecutar la Intalacion, creacion de Instancia
Creacion de Usuario por la consola SQL PlUS
Ingresar modo admin en pasword presionar ENTER
Introduzca el nombre de usuario: CONN / AS SYSDBA
Introduzca la contrase±a: /* ENTER*/
** Ver los Usuarios ***
** Eviamos el Errir ORA-65096 **
ALTER SESSION SET " _ORACLE_SCRIPT" = TRUE
** Creamos Usuario **
CREATE USER users IDENTIFIED BY password
** Briandomos Admin **
Ejecutar y Conectar a SQL Developer con las credenciales creadas
Creacion Tablas
Ingresar registros
Clave primaria
Oracle Database Operaciones
Descargar E Instalar Connector/J para MYSQL
MySQL Connector / J es el controlador JDBC oficial para MySQL. MySQL Connector / J 8.0 es compatible con todas las versiones de MySQL a partir de MySQL 5.6
📦 Instalador Connector/J MySQL Platform Independent (Architecture Independent), ZIP Archive.
Establecer Conexion
Seleccionar el Driver Descargado
Hacer el test de conexion para comprobar que todo este correcto
Conexión a la Base de Datos
JDBC Java Database Connectivity
Se utilizará la tecnologia Maven
Maven
Maven es una herramienta de software para la gestión y construcción de proyectos Java creada por Jason van Zyl, de Sonatype, en 2002. Es similar en funcionalidad a Apache Ant (y en menor medida a PEAR de PHP y CPAN de Perl), pero tiene un modelo de configuración de construcción más simple, basado en un formato XML. Estuvo integrado inicialmente dentro del proyecto Jakarta pero ahora ya es un proyecto de nivel superior de la Apache Software Foundation.
Maven utiliza un Project Object Model (POM) para describir el proyecto de software a construir, sus dependencias de otros módulos y componentes externos, y el orden de construcción de los elementos. Viene con objetivos predefinidos para realizar ciertas tareas claramente definidas, como la compilación del código y su empaquetado. Maven
CADENAS DE CONECCION ORACLE
<dependencies >
<dependency >
<groupId >com.oracle.database.jdbc</groupId >
<artifactId >ojdbc6</artifactId >
<version >11.2.0.4</version >
</dependency >
</dependencies >
try {
Conexion _conexion = new Conexion ();
Connection _connection = null ;
_connection = _conexion .LinkConnection ("jdbc:oracle:thin:@localhost:1521:XE" , "briandb" , "briandb" );
System .out .println ("Connection " + _connection );
_connection = _conexion .closeConexion ();
System .out .println ("Connection " + _connection .isClosed ());
} catch (SQLException ex ) {
Logger .getLogger (Test .class .getName ()).log (Level .SEVERE , null , ex );
}
Test
CADENAS DE CONECCION MYSQL
<dependencies >
<dependency >
<groupId >mysql</groupId >
<artifactId >mysql-connector-java</artifactId >
<version >8.0.24</version >
</dependency >
</dependencies >
var url = "jdbc:mysql://localhost:3306/test?useSSL=false&useTimezone=true&serverTimezone=UTC&allowPublicKeyRetrieval=true" ;
try {
// Class.forName("com.mysql.cj.jdbc.Driver");
Connection conexion = DriverManager .getConnection (url , "root" , "" );
Statement instruccion = conexion .createStatement ();
var sql = "SELECT id_persona, nombre, apellido, email FROM persona" ;
ResultSet resultado = instruccion .executeQuery (sql );
while (resultado .next ()) { // next : si tenemos un objeto aun por iterar . Veraddero o falso
System .out .print ("id_persona = " + resultado .getInt ("id_persona" ));
System .out .print (" Nombre = " + resultado .getString ("nombre" ));
System .out .print (" Apellido = " + resultado .getString ("apellido" ));
System .out .print (" | " );
}
resultado .close ();
instruccion .close ();
conexion .close ();
} catch (SQLException ex ) {
ex .printStackTrace (System .out );
}
Manejo del JDBC
Transacciones en JDBC
/************** MODIFICAR ****************/
Persona personaModificar = new Persona (2 , "brian" , "marquez" , "marquez@gmail.com" );
personaDao .actualizar (personaModificar );
/*Listado de personas*/
List <Persona > personas = personaDao .Seleccionar ();
personas .forEach (persona -> {
System .out .println ("persona = " + persona );
Manejo JDBC Transaciones
Patrones de Diseño y Buenas Practicas
Creacion de Capas de datos
Manejo del Pool de Conexiones
Servlets y JSP'S
Introduccion Servlets
Proceso de peticion HTTP
Descargar Glashfish y JDK
Hola Mundo Java Web
Hola Mundo Servlets
@ WebServlet ("/holaMundo" )
public class HolaMundo extends HttpServlet {
@ Override
protected void doGet (HttpServletRequest request , HttpServletResponse response ) throws IOException {
response .setContentType ("test/html;charset=UTF-8" );
PrintWriter out = response .getWriter ();
out .println ("Hola Mundo desde servlets" );
}
}
Servlets
Estructura
package web ;
import java .io .IOException ;
import javax .servlet .annotation .WebServlet ;
import javax .servlet .http .*;
@ WebServlet ("/ejemplo" )
public class ejemplo extends HttpServlet {
@ Override
protected void doGet (HttpServletRequest request , HttpServletResponse response ) throws IOException {
}
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
F5
Servlets
✔️
yes
yes
✔️
💾
Atras
Manejo de Parametros
Manejo Formularios HTML
A
B
C
E
F
G
Cabeceros de peticion
// Imprimos todo los cabeceros
Enumeration cabeceros = request .getHeaderNames ();
while (cabeceros .hasMoreElements ()){
//cast de comvertir de object a string
String nombreCabecero = (String ) cabeceros .nextElement ();
out .print ("<b> " + nombreCabecero + "</b> " );
out .print (request .getHeader (nombreCabecero ));
out .print ("<br>" );
}
Estado de Codigos con Servlets
Estado de Codigos con Servlets Ejercicio
Cabeceros de Respuesta con Servlets
Cabeceros de Respuesta con Servlets EJERCICIO
Manejo de Cookies
Manejo de Cookies EJERCICIO
Cookies Contador
Sesion HTTP
-request.getSession()
: se utiliza para obtener la sesion que se creo a partir de la peticion del cliente.
-sesion.getAtribute()
: Permite obtener un atributo preciamente agregado a la sesion del cliente.
-sesion.setAttrbute()
: Permite eliminar un atributo agregado a la sesion
-sesion.invalidate()
: Invalida la sesion actual del cliente.
-sesion.isNew()
: Permite saber si la sesion ha sio recien creada
-sesion.getCreationTime()
: Permite conocer en la fecha y hora cuando se creo la sesion
-sesion.getLastAccedesTime()
: Permite conocer la ultima ves en que la sesion fue accedisa por el cliente
sesion.getMaxInactiveInterval()
: Primite conocer el tiempo de inactividad(en segundos) necesaio para wu ela sesion se destruya sino recibe una peticion
sesion.setMaxInactiveInterval()
: Permite modificar el valor mencionado en funcion anterior. Este valor tambien se puede modificar en el archovo web.xml
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
F16
Sesion HTTP
✔️
yes
yes
✔️
💾
Atras
Ejemplo HTTP Session
<!-- La sesion dura 30 minutos luego se reiniciara-->
<session-timeout >
30
</session-timeout >
Uso de Lombok
Libreria que tunea nuestro IDE
Ademas, una dependencia es nuestro proyecto
Descargar lomkok.jar de Lombok Project
Ejecutar y seguir el asistente
<dependency >
<groupId >org .projectlombok </groupId >
<artifactId >lombok </artifactId >
<optional >true </optional >
</dependency
@ Data @ AllArgsConstructor @ NoArgsConstructor
public class Personas {
private String dni ;
Private String Nomnre ;
Private String Apellidos
}
Anotaciones Clave
@Getter
@Setter
@RequiredArgConstructor
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@ToString
Anotasciones derivadas
Equivalente a @Getter, @Setter, @RequiredArgsConstructor, @EqualsAndHashCode, @ToString
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
F18
Uso de Lombok
✔️
yes
yes
✔️
💾
⬅️Atras
Carrito Compras
Introduccion a los JSPS
Hola JSPS
< %-- Directiva --%>
< %@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
< html >
< head >
< meta http-equiv ="Content-Type " content ="text/html; charset=UTF-8 ">
< title > JSP Page</ title >
</ head >
< body >
< h1 > Hello World!</ h1 >
</ body >
</ html >
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
F21
Hola JSPS
✔️
yes
yes
✔️
💾
Atras
Elementos de un JSP
ExpresionesJSP
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
F23
ExpresionesJSP
✔️
yes
yes
✔️
💾
Atras
ScriptletsJSP
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
F24
ScriptletsJSP
✔️
yes
yes
✔️
💾
Atras
DeclaracionesJSP
Documentos con JPSX
<jsp : root xmlns : jsp =" http://java.sun.com/JSP/Page" version =" 2.0" >
<jsp : directive .page contentType =" text/html" pageEncoding =" UTF-8" />
<!-- any content can be specified here, e.g.: -->
<jsp : element name =" text" >
<jsp : attribute name =" lang" >EN</jsp : attribute >
<jsp : body >Hello World!</jsp : body >
</jsp : element >
</jsp : root >
Directivas con JSPS
Excel Jsps con Directivas
Inclusión de Archivos con JSPS
Inclusión Estatica
Inclusión Dinamica
Manejo de Javabeans con JSPS
Expression Languaje
JSP Standard Tag Libary
JSTL etiende los tags de los JSPS agregando principalmente las siguiente librerias
Core: Permite ller y manipular datos, asi como iterar, agregar condiciones y otras funciones basicas
xml: Permite la manipulacion y transfomacion de documentos XML
-SQL: Permite ejecutar consultas a una bade da datos, asi como crear conexiones a las mismas
fmt: Permite dar formato a las cadenas, apoyando de concepts como internacionalizaicion (Locale)
Configuracion de JSTL
Agregar las siguentes librerias al classpath
standar.jar
stsl.jar
Configuracion de la directiuva JSP
<%@ taglib url ="http://java.sun.com/jsp/core" prefix ="c" %>
<html
xmlns :c = "http://java,sun.com/jsp/jstl/core" >
xmlns :c = "http://java,sun.com/JSP/Page" >
Libreria Core de JSTL
Tags de Despliegue de informacion
<c :out value =$ {persona .nombre }>
Tag de cracion y manipulacion de variables:
<c :set var ="nombre" value ="Carlos" scape ="page/>
Tags de Elementos condicionales
<c :text ="${i>0}" /> y <c :choose > <c :when text ="a" >...
Tags de iteeracion de elementos
<c :forEach var ="persona" item =$ {persnas }>...
Patron de Diseño MVC
Proyecto Control Clientes
Introduccion JavaServlet Faces
.:Patron de diseño MVC con JSF:.
Modelo (ManagedBean de Modelo)
Vista (Facelets o JSPs)
Controlador (ManagedBean COntrolador)
Introduccion de JavaServer Faces
Introduccion a JavaServer Faces
Es una tecnologia que fue diseñada para simplificar la contruccion la interfaz de usuario para aplicaciones web Java.
Java server Faces (JSF) es el marco de aplicaciones web estandar para java Enterprive Edition. (JAVA EE)
Al ser un estandar de java, la tecnilogia cuenta con el apoyo de la industria solida.
La tecnologia ah crecido en el uso a nivel mundial
Caracteristicas
MVC
: Implementa el patro de diseño Modelo-Vista-controlador
RAD
: Desarrollo rapido de aplicaicones para Web
Componentes de interfaz de usuario
: JSF tiene desarrollados componetes reutilizable listo para utilizarse.
Render-Kits
: Los compones puede despligarse no solamente en navegadores web sino en dispositivos móviles y utros tipos de clientes
Extensibilidad
: JSF es altamente extensible debido a su arquitectura
Internacionalizacion
: Las vistas pueden mostrarse en distintos idiomas
Nuevas Caracteristicas
Manejo de condicioones por default mas inteligentes
Manejo anotaciones para viarias configuraciones
Soporte nativo para AJAX
Soporte por default para Facelets
Mas componentes y valodadores
Arquitectura JSF
Configuraciones
@ FacesConfig (
//Activa CDI- build-in beans
version = JSF_2_3
)
log4j2
<?xml version ="1.0" encoding ="UTF-8" ?>
<configuration status ="INFO" >
<Appenders >
<Console name ="Console" target ="SYSTEM_OUT" >
<PatternLayout pattern ="%d{HH:mm:ss} [%t] %-5level %logger{36} -%msg%n" ></PatternLayout >
</console >
</Appenders >
<Loggers >
<Root level ="info" >
<AppenderRef ref ="Console" />
</Root >
</Loggers >
</configuration >
web.xml
<?xml version ="1.0" encoding ="UTF-8" ?>
<web -app xmlns ="http://xmlns.jcp.org/xml/ns/javaee"
xmlns :xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi :schemaLocation ="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version ="4.0"
metadata -complete ="true" >
<context -param >
<param -name >javax .faces .PROJECT_STAGE </param -name >
<param -value >Development </param -value >
</context -param >
<servlet >
<servlet -name >Faces Servlet </servlet -name >
<servlet -class >javax .faces .webapp .FacesServlet </servlet -class >
<load -on -startup >1 </load -on -startup >
</servlet >
<servlet -mapping >
<servlet -name >Faces Servlet </servlet -name >
<url -pattern >/faces /*</url -pattern >
</servlet -mapping >
<welcome -file -list >
<welcome -file >faces /index .xhtml </welcome -file >
</welcome -file -list >
</web -app >
Hola Mundo JavaServlet Faces
<dependencies >
<dependency >
<groupId >javax </groupId >
<artifactId >javaee -api </artifactId >
<version >8.0 .1 </version >
<scope >provided </scope >
</dependency >
<dependency >
<groupId >org .apache .logging .log4j </groupId >
<artifactId >log4j -api </artifactId >
<version >2.14 .1 </version >
</dependency >
</dependencies >
Managed Beans JSF Intoduccion
Reglas de Navegacion en JSF
Backing Bean en JSF
Ciclo de Vida en JSF
Ciclo de Vida en JSF Ejercicio
Validadores en JSF
Convertidores en JSF
Internacionalizacion en JSF
Manejo de Eventos en JSF
JavaEE
Spring Boot
Spring Boot es una de las tecnologías dentro del mundo de Spring de las que más se esta hablando últimamente.¿Qué es y como funciona Spring Boot? . Para entender el concepto primero debemos reflexionar sobre como construimos aplicaciones con Spring Framework .
Spring Boot
Spring Framework
Spring Cloud Data
Spring Cloud (Microservicios)
Spring Data (DB)
Spring Itegration
Spring Security
Spring Hateoas
Spring REST DOCS
Spring Mobile
Proceso tupico para desarrollar una aplicacion de Spring
Seleccionar Dependencia necesarias para Maven(deben ser compatibles)
Crear nuestra aplicacion
Relaizar el Deploy en el servidor
📦 Spring Tools IDE Intalador de Spring Tools 🍃
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
Spring-01
Spring Boot
✔️
✔️
yes
yes
✔️
💾
Atras
Hola Mundo Spring usando controlador
Creacion de un Proyecto Spring
Spring.io
Configuracion de un Proyecto Spring
En este caso ajustamos la version a 11
Ejecucion
@ RestController
public class HomeController {
@ GetMapping ("" )
public String inicio () {
return "Hola Mundo" ;
}
}
Personalizar el puerto HTTP
SE PUEDE DECLARAR PROPIEDADES PARA CAMBIAR VALORES
CAMBIO DE PUERTO
Controlador
Thymeleaf plugin
Spring MVC
Spring MVC utiliza una arquitectura de aplicaciones seguiendo el patro de diseño MVC (Mode View Controller)
Spring MVC es un framework web basado en Servlets que viene incluido en Spring Framenwork (Spring-webmvc)
Spring MVC esta diseñado sifuiendo el patron de diseño Front Controller
En Spring MVC el Front Controller es mejor conocido como DispatcherServlet
Funciones Enviar peticiones(request) a lo manejadores (handlers) para que sean preocesadas
A Partir de Spring 4.0 se pueden crear RRESFUL Web servives utilizando la anotacion @RestController
, @PathVariable
Basado en Spring IOC container (Inyeccion de Dependencias)
Spring MVC se integra facil con otros proyectos de Spring:
Spring BooT
Spring Data JPA
Spirng Security
Sprint REST
Ventajas
Inyeccion de dependencias (Favorece el "loose coupling")
Desarrollo sencillo con POJOs (PLain Old Java Object)
Minimiza el codigo repetitivo (boilerplate code)
Simplifica el acceso a datos
Programacion Orientada a Aspectos(AOP): Modularidad Muy alta.
Modulos
Core
Infraestructura
Acceso a datos
Contenedor central
Web/MVC
Pruebas
AOP Aspects Messaging Instrumentation
JDBC Transactions ORM(Object Relational Mapping)
Beans Beans Spel Context Core
Servlets WebRocket Portlet Web
Unit Mock InTegration
Inversion Of Control
Invierte el flujo de control del programa, externalizando(agente externo: framework) la contruccion y manejo de objetos
Ventajas
Proporciona modularidad
Permite amplair la funcionalidad de nuestras aplicaciones son modificar las clases
Evita la dependencia entre clases
Flexibiliza nustras aplicaciones haciendolas mas configurables
Spring MVC
¿Que es un controlador de Spring MVC?
-Un controlador (Controller) es Spring MVC) es una clase normal a la cual se le arega la anotacion @controller
a novel de la clase.
En Una aplicacion web estos metodos principalmente esta marcados con las anotaciones @GetMapping
, @PostMapping
, @ResquestMapping
(Action Controller)
Los Metodos pueden tener cualquier nombre y deben regresar un String (nombre de la vista)
Los metodos son ejecutados al ser invocados por medio de la URL espefifica como parametro en las anotaciones @GetMapping
, etc.
Numeration
File
Link
Folk
Code
Version
State
Download
Go back
Spring-07
Spring MVC
✔️
✔️
yes
yes
✔️
💾
Atras
Teoria Inyeccion de Dependencias
Learning SpringBoot
Aprende a desarrollar Microservicios con Spring Boot y Spring Cloud, una de las tecnologías JAVA más usadas y demandadas en el mundo.
🏫 Link de Entrenamiento Learning SpringBoot
DOC
Recursos
Data Access Object
ODBC Java Conector MySQL
Jar-download
JODBC Java Conector ORACLE
Oracle
Configuraciones GIT
Indice TIOBE
El índice de la comunidad de programación TIOBE es un indicador de la popularidad de los lenguajes de programación.
El índice se actualiza una vez al mes. Las calificaciones se basan en la cantidad de ingenieros calificados en todo el mundo,
cursos y proveedores externos. Los motores de búsqueda populares como Google, Bing, Yahoo !, Wikipedia, Amazon, YouTube y
Baidu se utilizan para calcular las calificaciones.
Es importante tener en cuenta que el índice TIOBE no se trata del mejor lenguaje de
programación o del lenguaje en el que se han escrito la mayoría de las líneas de código .
Indice TIOBE
Books
Server
Name
Authors
Editorial
ISBN
Link
OneDrive
Java Como Programar en Java
Paul Deitel, Harvey Deitel
Pearson
978-607-32-3802-1
Java Como Programar en Java
Spotify Java
🎵 Music Java List on Spotify
🎵 Music Black List on Spotify
Diagramador Online
📈 Diagrams
Paypal Donation
☕ Hacer una donación PAYPAL 🍵
Licence
Todo acerca de la licencia here
A
B
C
E
F
G