Este documento describe las tres capas principales de una arquitectura de desarrollo de aplicaciones empresariales: la capa de presentación, la capa de negocio y la capa de acceso a datos. Explica conceptos clave como entidades, beans de sesión y delegados, y cómo estas tres capas interactúan entre sí para implementar la lógica del negocio y el acceso a la base de datos de forma segura y eficiente.
Esta presentación les ayudará a entender como JPA maneja las relaciones de clases y las llaves primarias compuestas.
Además de como crear validadores y conversores.
Introducción a Doctrine 2 ORM.
Una introducción y uso básico de Doctrine 2 ORM en PHP sin utilizar frameworks, a través de un proyecto sencillo usado como ejemplo.
El codigo PHP del proyecto se puede descargar de su repositorio de Github: (https://github.com/gonfert/cine.git)
Presentación realizada para la X Symfony Zaragoza
Slides de la tercera clase del curso de Java SCJP dictado en la Universidad Nacional de Centro de La Provincia de Buenos Aires.
Contenido:
1. Ejemplos de Enum
2. Unidad 2: POO
Diapositivas de la introducción al lenguaje ruby en el curso de extensión universitaria "Desarrollo Web Avanzado" del programa de Extensión Universitaria de la Universidad de Oviedo (2010)
Esta presentación les ayudará a entender como JPA maneja las relaciones de clases y las llaves primarias compuestas.
Además de como crear validadores y conversores.
Introducción a Doctrine 2 ORM.
Una introducción y uso básico de Doctrine 2 ORM en PHP sin utilizar frameworks, a través de un proyecto sencillo usado como ejemplo.
El codigo PHP del proyecto se puede descargar de su repositorio de Github: (https://github.com/gonfert/cine.git)
Presentación realizada para la X Symfony Zaragoza
Slides de la tercera clase del curso de Java SCJP dictado en la Universidad Nacional de Centro de La Provincia de Buenos Aires.
Contenido:
1. Ejemplos de Enum
2. Unidad 2: POO
Diapositivas de la introducción al lenguaje ruby en el curso de extensión universitaria "Desarrollo Web Avanzado" del programa de Extensión Universitaria de la Universidad de Oviedo (2010)
Metodologia para resolver problemas con Programacion orientada a ObjetosWilliam Diaz S
Propuesta metodología para enseñar a programar
Enfatiza Métodos /técnicas
Como generar algoritmos
Método de los refinamientos sucesivos de Wirth Nickaus
Clases Objetos arrays
Excelente guía para Profesores para que enseñen realmente a programar y a solucionar problemas
Manual básico del lenguaje de programación Java, incluye uso de la programación secuencial y los conceptos básicos de la programación orientada a objetos.
Metodologia para resolver problemas con Programacion orientada a ObjetosWilliam Diaz S
Propuesta metodología para enseñar a programar
Enfatiza Métodos /técnicas
Como generar algoritmos
Método de los refinamientos sucesivos de Wirth Nickaus
Clases Objetos arrays
Excelente guía para Profesores para que enseñen realmente a programar y a solucionar problemas
Manual básico del lenguaje de programación Java, incluye uso de la programación secuencial y los conceptos básicos de la programación orientada a objetos.
Présentation donnée lors des rendez-vous Logiciel Libre organisés par l'association toulousaine Toulibre le 20 avril 2011.
Plus d'infos : http://www.toulibre.org/evenements_passes
DỰ ÁN GOLD HILL 279 TRIỆU-ĐẤT NỀN SÂN GOLD-QUÝ 3/2012 GIAO NỀNTrần Tuyền
DỰ ÁN GOLD HILL - BDS SÂN GOLF
Dự án Gold Hill, dự án duy nhất hiện nay nằm ngay sân golf và hồ sinh thái 360ha, lại nằm ngay trung tâm hành chính huyện Trảng Bom, sắp trở thành Thị Xã Trảng Bom. Có thể nói, dự án Gold Hill rất tiềm năng. Một cơ hội đầu tư hiếm có trong giai đoạn thị trường BDS đang nằm ở đáy như hiện nay.
Chúng tôi trân trọng kính mời Anh/Chị đến tham quan dự án để thấy rõ tiềm năng của dự án.
(chú ý: khi tham quan dự án Gold Hill không bắt buột Khách hàng phải mua đất dự án)
Vui lòng liên hệ: Ms.Tuyền
ĐT: 0907 233 238 hoặc 0122 8670 907
Introducción al trabajo con Java Persistence Api (JPA), conceptos básicos y ejemplo aplicado a una tabla posts con los siguientes campos: post_id, post_title, post_date, post_body utilizando netbeans
REPORTES JASPERREPORT E IREPORT SIN CONEXIÓN A UNA BBDDSandra Campos
Tutorial de cómo generar reportes con jasperReport e iReport sin hacer una conexión a una base de datos, simplemente pasando parámetros desde nuestro programa en java al reporte.
La presente diapositiva les introduce a los componentes interativos DataTable y Column, la cuales se encuentran contenidas en la etiqueta <h:> de JavaServer Faces.
Ponencia en I SEMINARIO SOBRE LA APLICABILIDAD DE LA INTELIGENCIA ARTIFICIAL EN LA EDUCACIÓN SUPERIOR UNIVERSITARIA. 3 de junio de 2024. Facultad de Estudios Sociales y Trabajo, Universidad de Málaga.
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁClaude LaCombe
Recuerdo perfectamente la primera vez que oí hablar de las imágenes subliminales de los Testigos de Jehová. Fue en los primeros años del foro de religión “Yahoo respuestas” (que, por cierto, desapareció definitivamente el 30 de junio de 2021). El tema del debate era el “arte religioso”. Todos compartíamos nuestros puntos de vista sobre cuadros como “La Mona Lisa” o el arte apocalíptico de los adventistas, cuando repentinamente uno de los participantes dijo que en las publicaciones de los Testigos de Jehová se ocultaban imágenes subliminales demoniacas.
Lo que pasó después se halla plasmado en la presente obra.
Documento sobre las diferentes fuentes que han servido para transmitir la cultura griega, y que supone la primera parte del tema 4 de "Descubriendo nuestras raíces clásicas", optativa de bachillerato en la Comunitat Valenciana.
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxOsiris Urbano
Evaluación de principales hallazgos de la Historia Clínica utiles en la orientación diagnóstica de Hemorragia Digestiva en el abordaje inicial del paciente.
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “ROMPECABEZAS DE ECUACIONES DE 1ER. GRADO OLIMPIADA DE PARÍS 2024”. Esta actividad de aprendizaje propone retos de cálculo algebraico mediante ecuaciones de 1er. grado, y viso-espacialidad, lo cual dará la oportunidad de formar un rompecabezas. La intención didáctica de esta actividad de aprendizaje es, promover los pensamientos lógicos (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia, viso-espacialidad. Esta actividad de aprendizaje es de enfoques lúdico y transversal, ya que integra diversas áreas del conocimiento, entre ellas: matemático, artístico, lenguaje, historia, y las neurociencias.
5. El API de Persistencia de Java brinda facilidad al momento de interactuar con la base de datos y hacer el mapeo de objeto/relación respecto a un modelo de datos relacional en sus aplicaciones. JPAconsiste en 3 áres El API de Persistencia de Java. Mapeo de Objetos/Relaciones. El lenguaje Consultas. API de Persistencia de Java
6. Una entidad es un objeto del dominio de persistencia, pero mucho mas ligero. Típicamente una entidad representa una tabla de un modelo de datos relacional, en donde cada instancia de la entidad es una fila en dicha tabla.Formalmente y eventualmente llamados “Entity Beans”.Clases listadas en el elemento “<class>” en el archivo “persistence.xml”.No son persistentes hasta que están asociadas a un EntityManager.em.persist(author); ENTIDADES
10. Usado para determinar el nombre de la tabla automáticamente BikeclassBiketable El nombre de la Tabla puede ser especificado sin tener relación con el nombre de la entidad @Table(name=”table_name”) Usado para referenciar a una clase a través de EJB-QL Nombre de la Entidad
12. create table CAR ( CAR_ID bigint not null, CAR_YEAR integer not null, CAR_MODEL varchar(20) not null, CAR_MAKE varchar(20) not null, CAR_COST double, primary key (CAR_ID) ) Ejemplo de un esquema de BD a mapear
13. package java.examples.orm.core.annotated; import javax.persistence.*; @Entity @Table(name="CAR") public class Car { private long id; private String make; private String model; private int year; private double cost; public Car() {} public Car(long id) { this.id = id; } @Id @Column(name="CAR_ID", nullable=false) public long getId() { return id; } private void setId(long id) { this.id = id; } … Mapeo a BD usando Anotaciones
14. @Column(name="CAR_MAKE", unique=false, nullable=false, insertable=true, updatable=true, table="", //nota: podemosapuntar a otratablaparaobtener la propiedad length=20) public String getMake() { return make; } public void setMake(String make) { this.make = make; } @Column(name="CAR_MODEL", nullable=false, length=20) public String getModel() { return model; } public void setModel(String model) { this.model = model; } … Mapeo a BD usando Anotaciones
15. @Column(name="CAR_YEAR", nullable=false) public intgetYear() { return year; } public void setYear(int year) { this.year = year; } @Column(name="CAR_COST", scale=7, precision=2) public double getCost() { return cost; } public void setCost(double cost) { this.cost = cost; } ... } Mapeo a BD usando Anotaciones
16. Toda entidad debe tener una llave primariaLlaves primarias deben ser únicasPuede mapearse a una (llave primaria simple) o más (llave primaria compuesta) propiedades Las propiedades deben ser de tipo- tipos primitivos Java (incluido: Integer, Long, etc.)- java.lang.String- Clases de tipo llave primaria (compuesta de tipos de propiedades adecuados) LAVES PRIMARIAS SIMPLES
17. public interface javax.persistence.GeneratedValue { javax.persistence.GenerationType strategy(); String generator(); } public final class javax.persistence.GenerationType extends java.lang.Enum{ public static final GenerationType TABLE; public static final GenerationType SEQUENCE; public static final GenerationType IDENTITY; public static final GenerationType AUTO; } Llaves Primarias generadas
19. Transient- Le dice al proveedor de persistencia que ignore este campo/propiedadFetchType- Le dice a la persistencia el modo de carga de las relaciones de una objetoTemporal- Especifica detalle para el mapeo de propiedades tipo Date y CalendarLob- Mapea tipos BLOB y CLOBEnumerated- Mapea tipo Enumerado Java SE 5 REFINAMIENTO DE MAPEO
24. package java.examples.orm.core.annotated; import java.io.Serializable; import java.util.Date; import javax.persistence.*; Import java.examples.orm.core.ColorType; @Entity @Table(name="VASE") public class Vase implements Serializable { private static final long serialVersionUID = 1L; private long id; private Date aDate; private Date aTime; private Date aTimestamp; private ColorTypecolorId; private ColorTypecolorName; public Vase() {} public Vase(long id) { this.id = id; } … Ejemplo con tipo Temporal y Enum
25. @Temporal(TemporalType.DATE) public Date getADate() { return aDate; } public void setADate(Date date) { aDate = date; } @Temporal(TemporalType.TIME) public Date getATime() { return aTime; } public void setATime(Date time) { aTime = time; } @Temporal(TemporalType.TIMESTAMP) public Date getATimestamp() { return aTimestamp; } public void setATimestamp(Date timestamp) { aTimestamp = timestamp; } ... Usando Temporal Metadata
26. @Enumerated(EnumType.ORDINAL) public ColorTypegetColorId() { return colorId; } public void setColorId(ColorTypecolorId) { this.colorId = colorId; } @Enumerated(EnumType.STRING) public ColorTypegetColorName() { return colorName; } public void setColorName(ColorTypecolorName) { this.colorName = colorName; } @Id public long getId() { return id; } private void setId(long id) { this.id = id; } //final of class } Usando Temporal Metadata
27. Maneja el mapeo de O/R de las entidades a la base de datos.Provee API’s- Insertando objetos en la base de datos- Obteniendo objetos de la base de datos- Sincronizando objetos con la base de datos- Consultando de la base de datosProvee acceso en cachéSe coordina con servicios transaccionales del servidor (JTA) javax.persistence.EntityManager
28. Es un juego de instancias de entidades administradas por un Entity ManagerTodas las entidades se vuelven “detached” una vez que han sido cerradas o eliminadasExisten 2 tipos- Contextos de Persistencia de alcance-transaccional >> inicio/fin en los limites de la transacción- Contextos de Persistencia extendidos >> vive mas que una transacción simple >> permite interacciones más duraderas con la base de datos CONTEXTO DE PERSISTENCIA
30. Es un juego de clases que están mapeadas a la base de datosDefinido en META-INF/persistence.xml Debe tener un identificador (name=“”)Las Clases - Pueden ser nombradas en el archivo “persistence.xml”- Pueden ser automáticamente escaneadas del proyecto UNIDAD DE PERSISTENCIA
31. Son componentes que permiten interactuar con la base de datos y que residen en el servidor.A través del entity manager estos componentes pueden realizar operaciones de actualización sobre la base de datos.Debe tenerse en cuenta el tipo de transacción que está usando el contexto de presistencia para asegurar la coherencia de los datos. BEANS DE SESIÓN
40. Son componentes que actúan como proxies aplicando las reglas del negocio al delegar las tareas a los beans de sesión correspondientes.Es necesario realizar una serie de pasos para garantizar una conexión segura entre este componente y los beans de sesión. DELEGADOS
41. Paso 1 Crear una clase con un nombre que cumpla con la siguiente nomenclatura: “NombreEntidad”+Delegate Crear una propiedad del tipo de bean de sesión que nos permita trabajar con la entidad correspondiente.
42. Paso 2 Hacer clic derecho sobre cualquier parte de la clase y seleccionar la opción “Insert Code…”. De preferencia, hacerlo dentro del cuerpo de la clase.
43. Paso 3 En el menú emergente que aparece, seleccionar la opción “Call Enterprise Bean”.
44. Paso 4 Aparecerá una ventana como la siguiente, en la cual buscaremos el bean de sesión con el cual queremos que nuestro Delegado tenga conexión. Luego de eso, sin modificar el campo “Reference Name”, hacemos clic en “OK”.
45. Paso 5 Luego de cumplir el paso 4, automáticamente aparecerá este segmento de código. La función de este método es crear una conexión limpia entre el delegado y el servidor para obtener una instancia del bean de sesión. Es importante que este método se genere cumpliendo estos pasos. Sin embargo, esta tarea sólo se realiza una vez por proyecto web. Sí y solo si ya se ha generado por primera vez, se puede copiar de una clase a otra.
46. Paso 6 Ahora debemos crear un constructor que no reciba parámetros, pero que en el cuerpo se inicialice la variable “local” haciendo un llamado al método que se generó en el paso anterior. Tal como su muestra en la siguiente imagen. Es imprescindible que se realice este paso, ya que de no hacerlo la variable “local” siempre será null.
47. Paso 7 El paso 5 tiene repercusión en el archivo web.xml. Como sabemos, este archivo describe los parámetros de despliegue y la configuración de la aplicación en el servidor. Por tal motivo, en la pestaña “Referencias” encontraremos nuestra referencia hacia el bean de sesión seleccionado.
48. Paso 8 Podemos revisar el archivo web.xml en formato XML para darnos cuenta que los valores coinciden con nuestro método lookupPersonaFacade().
49. Paso 9 Sólo para demostrar un ejemplo de lo que puede hacer un Delegado, crearemos un método público crear que reciba como un parámetro a una persona. Este método es susceptible a lanzar excepciones cuando hay un error en la comunicación con la base de datos o cuando incumple la regla: “DNI es único por persona”. Nótese que toda interacción con la base de datos el método delega la tarea al bean de sesión correspondiente.