[{"data":1,"prerenderedAt":1066},["ShallowReactive",2],{"navigation_docs":3,"-actividades-act-09":298,"-actividades-act-09-surround":1063},[4,18,70,105,149,178,212,257],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Evaluación","\u002Fintroduction","1.introduction\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Método de Evaluación","i-iconamoon-cheque-bold",{"title":13,"path":14,"stem":15,"icon":16},"Plataforma de Aprendizaje","\u002Fintroduction\u002Fplataforma","1.introduction\u002F2.plataforma","i-lucide-book-marked","i-lucide-house",{"title":19,"path":20,"stem":21,"children":22,"icon":25},"Interfaz Gráfica de Usuario","\u002Fgui","2.gui\u002F01.index",[23,26,30,34,38,42,46,50,54,58,62,66],{"title":24,"path":20,"stem":21,"icon":25},"¿Qué es una Interfaz Gráfica de Usuario (GUI)?","i-carbon-gui-management",{"title":27,"path":28,"stem":29,"icon":25},"Creación de Interfaces Gráficas de Usuario (GUI)","\u002Fgui\u002Fbuild-gui","2.gui\u002F02.build-gui",{"title":31,"path":32,"stem":33,"icon":25},"Componentes Básicos de Swing","\u002Fgui\u002Fcomponentes-basicos","2.gui\u002F03.componentes-basicos",{"title":35,"path":36,"stem":37},"El componente JFrame","\u002Fgui\u002Fjframe","2.gui\u002F04.jframe",{"title":39,"path":40,"stem":41},"El componente JPanel","\u002Fgui\u002Fjpanel","2.gui\u002F05.jpanel",{"title":43,"path":44,"stem":45},"El componente JButton","\u002Fgui\u002Fjbutton","2.gui\u002F06.jbutton",{"title":47,"path":48,"stem":49,"icon":25},"Elementos de texto en interfaces gráficas con Swing","\u002Fgui\u002Ftext","2.gui\u002F07.text",{"title":51,"path":52,"stem":53},"Elementos Visuales","\u002Fgui\u002Felementos-visuales","2.gui\u002F08.elementos-visuales",{"title":55,"path":56,"stem":57,"icon":25},"Eventos en Swing","\u002Fgui\u002Feventos","2.gui\u002F09.eventos",{"title":59,"path":60,"stem":61,"icon":25},"Controles en Swing","\u002Fgui\u002Fcontroles","2.gui\u002F10.controles",{"title":63,"path":64,"stem":65,"icon":25},"Atributos Comunes de los Componentes de Diseño","\u002Fgui\u002Fatributos-comunes","2.gui\u002F11.atributos-comunes",{"title":67,"path":68,"stem":69,"icon":25},"Layouts","\u002Fgui\u002Flayout","2.gui\u002F12.layout",{"title":71,"icon":25,"path":72,"stem":73,"children":74,"page":104},"Personalización","\u002Fpersonalizacion","3.personalizacion",[75,79,84,88,92,96,100],{"title":76,"path":77,"stem":78},"Jerarquía de clases en Swing","\u002Fpersonalizacion\u002Fjerarquia","3.personalizacion\u002F01.jerarquia",{"title":80,"path":81,"stem":82,"icon":83},"Personalización Inicial de Componentes Swing","\u002Fpersonalizacion\u002Fpersonalizacion-inicial","3.personalizacion\u002F02.personalizacion-inicial","i-carbon-palette",{"title":85,"path":86,"stem":87,"icon":83},"Tema y Personalización Avanzada en Swing","\u002Fpersonalizacion\u002Ftheme","3.personalizacion\u002F03.theme",{"title":89,"path":90,"stem":91,"icon":83},"Pintando en Swing","\u002Fpersonalizacion\u002Fpaint","3.personalizacion\u002F04.paint",{"title":93,"path":94,"stem":95,"icon":83},"Mi Tema 1: Comenzando con la Personalización","\u002Fpersonalizacion\u002Ftheme-start","3.personalizacion\u002F05.theme-start",{"title":97,"path":98,"stem":99,"icon":83},"UI Delegates: Personalizando la Apariencia de los Componentes","\u002Fpersonalizacion\u002Fui-delegates","3.personalizacion\u002F06.ui-delegates",{"title":101,"path":102,"stem":103,"icon":83},"Empleado delegadores de UI para personalizar la apariencia de los componentes","\u002Fpersonalizacion\u002Ftheme-02","3.personalizacion\u002F07.theme-02",false,{"title":106,"path":107,"stem":108,"children":109,"icon":148},"Programación concurrente","\u002Fconcurrencia","4.concurrencia\u002F01.index",[110,112,116,120,124,128,132,136,140,144],{"title":111,"path":107,"stem":108,"icon":83},"¿Qué es la concurrencia?",{"title":113,"path":114,"stem":115,"icon":83},"Unidades de Ejecución","\u002Fconcurrencia\u002Funidades-ejecucion","4.concurrencia\u002F02.unidades-ejecucion",{"title":117,"path":118,"stem":119,"icon":83},"Programa de flujo único y de flujo múltiple","\u002Fconcurrencia\u002Fflujos","4.concurrencia\u002F03.flujos",{"title":121,"path":122,"stem":123,"icon":83},"Hilos con Thread y Runnable","\u002Fconcurrencia\u002Fthread-runnable","4.concurrencia\u002F04.thread-runnable",{"title":125,"path":126,"stem":127},"Paralelismo V.S. Concurrencia","\u002Fconcurrencia\u002Fparalelismo","4.concurrencia\u002F05.paralelismo",{"title":129,"path":130,"stem":131,"icon":83},"Problemas clásicos de concurrencia","\u002Fconcurrencia\u002Fproblemas","4.concurrencia\u002F06.problemas",{"title":133,"path":134,"stem":135,"icon":83},"Emulando condiciones de carrera en Java","\u002Fconcurrencia\u002Fcondiciones-carrera","4.concurrencia\u002F07.condiciones-carrera",{"title":137,"path":138,"stem":139,"icon":83},"Semáforos en Java","\u002Fconcurrencia\u002Fsemaforos","4.concurrencia\u002F08.semaforos",{"title":141,"path":142,"stem":143,"icon":83},"La clase Timer en Java Swing","\u002Fconcurrencia\u002Ftimer","4.concurrencia\u002F09.timer",{"title":145,"path":146,"stem":147,"icon":83},"Algoritmos de ordenamiento de procesos","\u002Fconcurrencia\u002Falgoritmos-procesos","4.concurrencia\u002F10.algoritmos-procesos","i-carbon-parallel-groups",{"title":150,"path":151,"stem":152,"children":153,"icon":177},"Acceso a datos","\u002Fdatos","5.datos\u002F01.index",[154,157,161,165,169,173],{"title":155,"path":151,"stem":152,"icon":156},"Java y las bases de datos","i-carbon-database",{"title":158,"path":159,"stem":160},"Cliente Servidor","\u002Fdatos\u002Fcliente-servidor","5.datos\u002F02.cliente-servidor",{"title":162,"path":163,"stem":164},"CRUD","\u002Fdatos\u002Fcrud","5.datos\u002F03.crud",{"title":166,"path":167,"stem":168},"Sentencias Preparadas con JDBC","\u002Fdatos\u002Fsentencia-preparada","5.datos\u002F04.sentencia-preparada",{"title":170,"path":171,"stem":172},"DAO (Data Access Object)","\u002Fdatos\u002Fdao","5.datos\u002F05.dao",{"title":174,"path":175,"stem":176},"Usando Hibernate ORM","\u002Fdatos\u002Form","5.datos\u002F06.orm","i-gravity-ui-database-fill",{"title":179,"path":180,"stem":181,"children":182,"icon":211},"Programación móvil","\u002Fmovil","6.movil\u002F01.index",[183,186,191,195,199,203,207],{"title":184,"path":180,"stem":181,"icon":185},"¿Qué es Android y Kotlin?","i-carbon-mobile",{"title":187,"path":188,"stem":189,"icon":190},"¿Qué es Android Studio?","\u002Fmovil\u002Fandroid-studio","6.movil\u002F02.android-studio","i-carbon-application",{"title":192,"path":193,"stem":194,"icon":190},"¿Qué es Jetpack Compose?","\u002Fmovil\u002Fjetpack-compose","6.movil\u002F03.jetpack-compose",{"title":196,"path":197,"stem":198},"Filas y Columnas con Jetpack Compose","\u002Fmovil\u002Ffilas-columnas","6.movil\u002F04.filas-columnas",{"title":200,"path":201,"stem":202,"icon":190},"Componentes Básicos en Jetpack Compose","\u002Fmovil\u002Fcomponentes-basicos","6.movil\u002F05.componentes-basicos",{"title":204,"path":205,"stem":206,"icon":190},"Las Intenciones en Android con Jetpack Compose","\u002Fmovil\u002Fintentions","6.movil\u002F06.intentions",{"title":208,"path":209,"stem":210,"icon":190},"Navegación en Android con Jetpack Compose","\u002Fmovil\u002Fnavegacion","6.movil\u002F07.navegacion","phone_android",{"title":213,"icon":25,"path":214,"stem":215,"children":216,"page":104},"Ejemplos","\u002Fejemplos","7.ejemplos",[217,221,225,229,233,237,241,245,249,253],{"title":218,"path":219,"stem":220},"Ejemplo 01: Creando un validador abstracto de expresiones","\u002Fejemplos\u002Fejemplo-01","7.ejemplos\u002F01.ejemplo-01",{"title":222,"path":223,"stem":224},"Ejemplo 02: Diferencias de validar un JTextField y un JFormattedTextField","\u002Fejemplos\u002Fejemplo-02","7.ejemplos\u002F02.ejemplo-02",{"title":226,"path":227,"stem":228},"Ejemplo 03: Creando una Aplicación con GUI en Java Swing","\u002Fejemplos\u002Fejemplo-03","7.ejemplos\u002F03.ejemplo-03",{"title":230,"path":231,"stem":232},"Ejemplo 4: Estilizando componentes Swing con Delegadores","\u002Fejemplos\u002Fejemplo-04","7.ejemplos\u002F04.ejemplo-04",{"title":234,"path":235,"stem":236,"icon":83},"Ejemplo 5: Uso de Hilos con Thread y Runnable","\u002Fejemplos\u002Fejemplo-05","7.ejemplos\u002F05.ejemplo-05",{"title":238,"path":239,"stem":240,"icon":83},"Ejemplo 06: Manejando Hilos de formas Diferentes en Java","\u002Fejemplos\u002Fejemplo-06","7.ejemplos\u002F06.ejemplo-06",{"title":242,"path":243,"stem":244,"icon":83},"Ejemplo 7: Condiciones de carrera en Java","\u002Fejemplos\u002Fejemplo-07","7.ejemplos\u002F07.ejemplo-07",{"title":246,"path":247,"stem":248,"icon":83},"Ejemplo 8: Control de acceso a recursos compartidos con semáforos","\u002Fejemplos\u002Fejemplo-08","7.ejemplos\u002F08.ejemplo-08",{"title":250,"path":251,"stem":252,"icon":83},"Ejemplo 9: El restaurante y los pedidos","\u002Fejemplos\u002Fejemplo-09","7.ejemplos\u002F09.ejemplo-09",{"title":254,"path":255,"stem":256},"Ejemplo 10: Proceso FIFO (First In, First Out) con Semáforos y Swing","\u002Fejemplos\u002Fejemplo-10","7.ejemplos\u002F10.ejemplo-10",{"title":258,"icon":25,"path":259,"stem":260,"children":261,"page":104},"Actividades","\u002Factividades","8.actividades",[262,266,270,274,278,282,286,290,294],{"title":263,"path":264,"stem":265,"icon":25},"Actividad 1: Introducción al diseño de interfaces","\u002Factividades\u002Fact-01","8.actividades\u002F01.act-01",{"title":267,"path":268,"stem":269,"icon":25},"Actividad 2: Diseño de wireframes y prototipos","\u002Factividades\u002Fact-02","8.actividades\u002F02.act-02",{"title":271,"path":272,"stem":273,"icon":25},"Actividad 3: Propuesta de Proyecto y Wireframe inicial","\u002Factividades\u002Fact-03","8.actividades\u002F03.act-03",{"title":275,"path":276,"stem":277,"icon":83},"Actividad 4: Temas y Componentes Personalizados en Swing","\u002Factividades\u002Fact-04","8.actividades\u002F04.act-04",{"title":279,"path":280,"stem":281,"icon":83},"Actividad 5: Explicando la Concurrencia a un Niño de 5 Años","\u002Factividades\u002Fact-05","8.actividades\u002F05.act-05",{"title":283,"path":284,"stem":285,"icon":83},"Actividad 6: Simulación de una cocina con múltiples chefs (hilos)","\u002Factividades\u002Fact-06","8.actividades\u002F06.act-06",{"title":287,"path":288,"stem":289,"icon":83},"Actividad 7: Sistema de retiro bancario","\u002Factividades\u002Fact-07","8.actividades\u002F07.act-07",{"title":291,"path":292,"stem":293,"icon":83},"Actividad 8: Simulación de Round Robin con hilos e Interfaz Gráfica","\u002Factividades\u002Fact-08","8.actividades\u002F08.act-08",{"title":295,"path":296,"stem":297,"icon":83},"Actividad 9: CRUD con Hibernate y Swing","\u002Factividades\u002Fact-09","8.actividades\u002F09.act-09",{"id":299,"title":295,"body":300,"description":1046,"extension":1056,"links":1057,"meta":1058,"navigation":1060,"path":296,"seo":1061,"stem":297,"__hash__":1062},"docs\u002F8.actividades\u002F09.act-09.md",{"type":301,"value":302,"toc":1045},"minimark",[303,308,312,316,319,826,830,848,852,872,876,879,902,905,908,912,958,961,968,971,974,1034,1037,1040],[304,305,307],"h2",{"id":306},"objetivo","Objetivo",[309,310,311],"p",{},"El objetivo de esta actividad es desarrollar una aplicación de escritorio utilizando Java Swing para la interfaz gráfica y Hibernate para la gestión de la persistencia de datos. La aplicación permitirá a los usuarios realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sobre una base de datos de productos.",[304,313,315],{"id":314},"requisitos","Requisitos",[309,317,318],{},"Antes de comenzar, consulta de la siguiente lista el esquema de base de datos que utilizarás según el equipo al que pertenezcas:",[320,321,324,399,468,528,593,650,706,768],"tabs",{"className":322},[323],"w-full",[325,326,328,332,384,389],"tabs-item",{"label":327},"A, I",[304,329,331],{"id":330},"sistema-de-estudiantes-con-cursos","Sistema de Estudiantes con Cursos",[333,334,335,348],"table",{},[336,337,338],"thead",{},[339,340,341,345],"tr",{},[342,343,344],"th",{},"Tabla",[342,346,347],{},"Campos",[349,350,351,360,368,376],"tbody",{},[339,352,353,357],{},[354,355,356],"td",{},"Student",[354,358,359],{},"id (PK), firstName, lastName, email",[339,361,362,365],{},[354,363,364],{},"Course",[354,366,367],{},"id (PK), name, credits",[339,369,370,373],{},[354,371,372],{},"Teacher",[354,374,375],{},"id (PK), name",[339,377,378,381],{},[354,379,380],{},"Enrollment",[354,382,383],{},"id (PK), student_id (FK), course_id (FK), grade",[385,386,388],"h3",{"id":387},"objetivo-crud","Objetivo CRUD",[390,391,392,396],"ul",{},[393,394,395],"li",{},"Gestionar estudiantes, cursos y profesores",[393,397,398],{},"Inscribir estudiantes a cursos",[325,400,402,406,457,460],{"label":401},"B, J",[304,403,405],{"id":404},"sistema-de-inventario-con-categorías","Sistema de Inventario con Categorías",[333,407,408,416],{},[336,409,410],{},[339,411,412,414],{},[342,413,344],{},[342,415,347],{},[349,417,418,426,433,441,449],{},[339,419,420,423],{},[354,421,422],{},"Product",[354,424,425],{},"id (PK), name, price, stock",[339,427,428,431],{},[354,429,430],{},"Category",[354,432,375],{},[339,434,435,438],{},[354,436,437],{},"Supplier",[354,439,440],{},"id (PK), name, contact",[339,442,443,446],{},[354,444,445],{},"Product_Category",[354,447,448],{},"product_id (FK), category_id (FK)",[339,450,451,454],{},[354,452,453],{},"Product_Supplier",[354,455,456],{},"product_supplier_id (PK), supplier_id (FK), product_id (FK)",[385,458,388],{"id":459},"objetivo-crud-1",[390,461,462,465],{},[393,463,464],{},"Gestionar productos, categorías y proveedores",[393,466,467],{},"Asignar productos a proveedores y categorías",[325,469,471,475,517,520],{"label":470},"C, K",[304,472,474],{"id":473},"biblioteca-avanzada","Biblioteca Avanzada",[333,476,477,485],{},[336,478,479],{},[339,480,481,483],{},[342,482,344],{},[342,484,347],{},[349,486,487,495,502,509],{},[339,488,489,492],{},[354,490,491],{},"Book",[354,493,494],{},"id (PK), title, isbn, publisher_id (FK)",[339,496,497,500],{},[354,498,499],{},"Author",[354,501,375],{},[339,503,504,507],{},[354,505,506],{},"Publisher",[354,508,375],{},[339,510,511,514],{},[354,512,513],{},"Book_Author",[354,515,516],{},"book_author_id (PK), book_id (FK), author_id (FK)",[385,518,388],{"id":519},"objetivo-crud-2",[390,521,522,525],{},[393,523,524],{},"Gestionar libros, autores y editoriales",[393,526,527],{},"Asignar autores a libros y libros con más de un autor",[325,529,531,535,578,581,586,590],{"label":530},"D, L",[304,532,534],{"id":533},"sistema-de-ventas","Sistema de Ventas",[333,536,537,545],{},[336,538,539],{},[339,540,541,543],{},[342,542,344],{},[342,544,347],{},[349,546,547,555,563,570],{},[339,548,549,552],{},[354,550,551],{},"Customer",[354,553,554],{},"id (PK), name, email",[339,556,557,560],{},[354,558,559],{},"Order",[354,561,562],{},"id (PK), date, customer_id (FK)",[339,564,565,567],{},[354,566,422],{},[354,568,569],{},"id (PK), name, price",[339,571,572,575],{},[354,573,574],{},"Order_Detail",[354,576,577],{},"id (PK), order_id (FK), product_id (FK), quantity, subtotal",[304,579,388],{"id":580},"objetivo-crud-3",[390,582,583],{},[393,584,585],{},"Crear pedidos con múltiples productos",[304,587,589],{"id":588},"clave","Clave",[309,591,592],{},"Entidad intermedia con atributos → muy importante en Hibernate",[325,594,596,600,642,645],{"label":595},"E, M",[304,597,599],{"id":598},"recursos-humanos","Recursos Humanos",[333,601,602,610],{},[336,603,604],{},[339,605,606,608],{},[342,607,344],{},[342,609,347],{},[349,611,612,620,627,634],{},[339,613,614,617],{},[354,615,616],{},"Employee",[354,618,619],{},"id (PK), name, salary",[339,621,622,625],{},[354,623,624],{},"Department",[354,626,375],{},[339,628,629,632],{},[354,630,631],{},"Position",[354,633,375],{},[339,635,636,639],{},[354,637,638],{},"Employee_Position",[354,640,641],{},"employee_id (FK), position_id (FK), startDate",[304,643,388],{"id":644},"objetivo-crud-4",[390,646,647],{},[393,648,649],{},"Historial de puestos por empleado",[325,651,653,657,700,703],{"label":652},"F, N",[304,654,656],{"id":655},"sistema-médico","Sistema Médico",[333,658,659,667],{},[336,660,661],{},[339,662,663,665],{},[342,664,344],{},[342,666,347],{},[349,668,669,677,685,692],{},[339,670,671,674],{},[354,672,673],{},"Patient",[354,675,676],{},"id (PK), name, birthDate",[339,678,679,682],{},[354,680,681],{},"Doctor",[354,683,684],{},"id (PK), name, specialty_id (FK)",[339,686,687,690],{},[354,688,689],{},"Specialty",[354,691,375],{},[339,693,694,697],{},[354,695,696],{},"Appointment",[354,698,699],{},"id (PK), date, patient_id (FK), doctor_id (FK)",[304,701,388],{"id":702},"objetivo-crud-5",[309,704,705],{},"*Gestión de citas con especialidades",[325,707,709,713,754,757,762,765],{"label":708},"G, O",[304,710,712],{"id":711},"plataforma-educativa","Plataforma Educativa",[333,714,715,723],{},[336,716,717],{},[339,718,719,721],{},[342,720,344],{},[342,722,347],{},[349,724,725,732,739,747],{},[339,726,727,729],{},[354,728,356],{},[354,730,731],{},"id (PK), name, birthDate, email",[339,733,734,736],{},[354,735,364],{},[354,737,738],{},"id (PK), title, description",[339,740,741,744],{},[354,742,743],{},"Module",[354,745,746],{},"id (PK), title, course_id (FK)",[339,748,749,751],{},[354,750,380],{},[354,752,753],{},"id (PK), student_id (FK), course_id (FK)",[304,755,388],{"id":756},"objetivo-crud-6",[390,758,759],{},[393,760,761],{},"Cursos con módulos y alumnos inscritos",[304,763,589],{"id":764},"clave-1",[309,766,767],{},"Relación jerárquica + N:M",[325,769,771,775,818,821],{"label":770},"H, P",[304,772,774],{"id":773},"sistema-de-soporte-técnico","Sistema de Soporte Técnico",[333,776,777,785],{},[336,778,779],{},[339,780,781,783],{},[342,782,344],{},[342,784,347],{},[349,786,787,794,802,810],{},[339,788,789,792],{},[354,790,791],{},"User",[354,793,554],{},[339,795,796,799],{},[354,797,798],{},"Ticket",[354,800,801],{},"id (PK), title, description, status, user_id (FK)",[339,803,804,807],{},[354,805,806],{},"Comment",[354,808,809],{},"id (PK), message, ticket_id (FK), user_id (FK)",[339,811,812,815],{},[354,813,814],{},"Priority",[354,816,817],{},"id (PK), level",[304,819,388],{"id":820},"objetivo-crud-7",[390,822,823],{},[393,824,825],{},"Tickets con comentarios y prioridades",[304,827,829],{"id":828},"implementación","Implementación",[831,832,833,836,839,842,845],"ol",{},[393,834,835],{},"Configura tu proyecto Java con Hibernate y Swing.",[393,837,838],{},"Crea las entidades Java correspondientes a las tablas de tu base de datos usando las notaciones de Hibernate y Jakarta Persistence.",[393,840,841],{},"Implementa la lógica de negocio para realizar las operaciones CRUD utilizando Hibernate.",[393,843,844],{},"Diseña la interfaz gráfica con Swing para permitir a los usuarios interactuar con el sistema y realizar las operaciones CRUD.",[393,846,847],{},"Prueba tu aplicación para asegurarte de que todas las funcionalidades CRUD funcionan correctamente.",[304,849,851],{"id":850},"consideraciones-finales","Consideraciones Finales",[390,853,854,857,860,863,866],{},[393,855,856],{},"Asegúrate de manejar las excepciones adecuadamente, especialmente al interactuar con la base de datos.",[393,858,859],{},"Utiliza patrones de diseño como DAO (Data Access Object) para separar la lógica de acceso a datos de la lógica de negocio.",[393,861,862],{},"Puedes utilizar una base de datos en memoria como SQLite o H2 para facilitar el desarrollo y las pruebas, o configurar una base de datos MySQL o PostgreSQL si lo prefieres.",[393,864,865],{},"Recuerda seguir las mejores prácticas de codificación y diseño de software para garantizar que tu aplicación sea mantenible y escalable.",[393,867,868],{},[869,870,871],"strong",{},"Recuerda que para tanto la funcionalidad de Hibernate y Swing no choquen entre sí, es imprescindible el uso de Semáforos sea implementado para evitar problemas de concurrencia y garantizar la integridad de los datos al realizar operaciones CRUD, en conjunto con Timer para actualizar la interfaz gráfica de manera eficiente y evitar bloqueos en la interfaz de usuario.",[304,873,875],{"id":874},"entrega","Entrega",[309,877,878],{},"Al finalizar la actividad, entrega el código fuente de tu aplicación, un video de presentación y un único documento PDF que contenga lo siguiente:",[390,880,881,884,887,890,893,896,899],{},[393,882,883],{},"Portada con el nombre de la actividad, el nombre de los integrantes del equipo y el nombre del curso.",[393,885,886],{},"Descripción del sistema implementado, incluyendo las entidades y sus relaciones.",[393,888,889],{},"Código fuente de las clases principales (entidades, DAOs, y la interfaz gráfica).",[393,891,892],{},"Capturas de pantalla de la aplicación en funcionamiento, mostrando las operaciones CRUD realizadas.",[393,894,895],{},"Conclusiones sobre el proceso de desarrollo y los desafíos enfrentados.",[393,897,898],{},"URL del video de presentación (si es necesario subirlo a una plataforma como YouTube o Google Drive).",[393,900,901],{},"Referencias bibliográficas utilizadas para la implementación.",[309,903,904],{},"En este caso es importante destacar que el código fuente se entregará como un archivo comprimido (ZIP) adjunto al documento PDF, y no se incluirá directamente en el documento para mantener la claridad y organización de la entrega.",[309,906,907],{},"En cuanto al apartado visual, lo importante es implementar sus propios componentes personalizados con Swing, delegadores, temas, etc. No es necesario utilizar bibliotecas externas para mejorar la apariencia. El enfoque principal debe ser en la funcionalidad y la implementación de las operaciones CRUD utilizando Hibernate y Swing.",[304,909,911],{"id":910},"recursos-adicionales","Recursos Adicionales",[390,913,914,923,930,937,944,951],{},[393,915,916],{},[917,918,922],"a",{"href":919,"rel":920},"https:\u002F\u002Fhibernate.org\u002Form\u002Fdocumentation\u002F",[921],"nofollow","Documentación de Hibernate",[393,924,925],{},[917,926,929],{"href":927,"rel":928},"https:\u002F\u002Fdocs.oracle.com\u002Fjavase\u002Ftutorial\u002Fuiswing\u002F",[921],"Tutoriales de Java Swing",[393,931,932],{},[917,933,936],{"href":934,"rel":935},"https:\u002F\u002Fwww.baeldung.com\u002Fhibernate-crud",[921],"Ejemplos de CRUD con Hibernate",[393,938,939],{},[917,940,943],{"href":941,"rel":942},"https:\u002F\u002Fwww.baeldung.com\u002Fjava-dao-pattern",[921],"Patrón DAO en Java",[393,945,946],{},[917,947,950],{"href":948,"rel":949},"https:\u002F\u002Fwww.h2database.com\u002Fhtml\u002Fmain.html",[921],"Base de datos en memoria H2",[393,952,953],{},[917,954,957],{"href":955,"rel":956},"https:\u002F\u002Fwww.sqlite.org\u002Findex.html",[921],"Base de datos en memoria SQLite",[309,959,960],{},"De igual manera, es recomendable consultar el siguiente código de ejemplo para entender cómo implementar las operaciones CRUD utilizando Hibernate y Swing:",[309,962,963],{},[917,964,967],{"href":965,"rel":966},"https:\u002F\u002Fgithub.com\u002Fjesus-castro89\u002Fhibernate_exampe",[921],"Ejemplo CRUD con Hibernate y Swing",[304,969,5],{"id":970},"evaluación",[309,972,973],{},"La evaluación de esta actividad se basará en los siguientes criterios:",[333,975,976,986],{},[336,977,978],{},[339,979,980,983],{},[342,981,982],{},"Criterio de Evaluación",[342,984,985],{},"Puntuación",[349,987,988,996,1004,1012,1019,1026],{},[339,989,990,993],{},[354,991,992],{},"Funcionalidad CRUD",[354,994,995],{},"40 puntos",[339,997,998,1001],{},[354,999,1000],{},"Diseño de la Interfaz",[354,1002,1003],{},"10 puntos",[339,1005,1006,1009],{},[354,1007,1008],{},"Uso de Hilos, Semáforos y Timer",[354,1010,1011],{},"20 puntos",[339,1013,1014,1017],{},[354,1015,1016],{},"Calidad y Documentación del Código",[354,1018,1003],{},[339,1020,1021,1024],{},[354,1022,1023],{},"Presentación y Documentación Final",[354,1025,1011],{},[339,1027,1028,1031],{},[354,1029,1030],{},"Total",[354,1032,1033],{},"100 puntos",[309,1035,1036],{},"Para efectos de la entrega, se realizará una presentación en video (no es necesario que salgan en el mismo, más si el audio de los miembros del equipo) donde cada equipo explicará su implementación, las decisiones tomadas y los resultados obtenidos. Se evaluará la claridad de la explicación, la calidad del código y la capacidad de cada uno de los miembros del equipo para responder preguntas relacionadas con la actividad.",[309,1038,1039],{},"Recuerda que la presentación debe ser clara y concisa, enfocándose en los aspectos más relevantes de la implementación y los resultados obtenidos.",[309,1041,1042],{},[869,1043,1044],{},"Es importante recalcar que la presentación es una parte fundamental de la evaluación y requisito para la entrega de la actividad, ya que en caso de no presentarse, el equipo no podrá ser evaluado y, por lo tanto, se considerará como no entregada la actividad, independientemente de la calidad del código o la documentación presentada.",{"title":1046,"searchDepth":1047,"depth":1047,"links":1048},"",2,[1049,1050,1051,1052,1053,1054,1055],{"id":306,"depth":1047,"text":307},{"id":314,"depth":1047,"text":315},{"id":828,"depth":1047,"text":829},{"id":850,"depth":1047,"text":851},{"id":874,"depth":1047,"text":875},{"id":910,"depth":1047,"text":911},{"id":970,"depth":1047,"text":5},"md",null,{"escription":1059,"editButton":104},"En esta actividad, se implementará un sistema de gestión de productos utilizando Hibernate para la persistencia de datos y Swing para la interfaz gráfica de usuario. El sistema permitirá realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sobre una base de datos de productos.",{"icon":83},{"title":295,"description":1046},"dszy4le43PBRZJiCwr-PNl84skqM1t-GDvz8Ri_33Y0",[1064,1057],{"title":291,"path":292,"stem":293,"description":1065,"icon":83,"children":-1},"En esta actividad se implementará una simulación de un sistema de planificación Round Robin utilizando hilos en Java. Además, se creará una interfaz gráfica para visualizar el estado de los procesos en ejecución, los procesos en espera y el proceso actual. Esta actividad permitirá comprender mejor cómo funciona el algoritmo de planificación Round Robin y cómo se pueden utilizar hilos e interfaces gráficas para simular sistemas operativos.",1775101377768]