[{"data":1,"prerenderedAt":1001},["ShallowReactive",2],{"navigation_docs":3,"-datos":298,"-datos-surround":996},[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":155,"body":300,"description":989,"extension":990,"links":991,"meta":992,"navigation":993,"path":151,"seo":994,"stem":152,"__hash__":995},"docs\u002F5.datos\u002F01.index.md",{"type":301,"value":302,"toc":983},"minimark",[303,308,312,316,319,397,401,897,900,903,972,976,979],[304,305,307],"h2",{"id":306},"qué-es-jdbc","¿Qué es JDBC?",[309,310,311],"p",{},"JDBC (Java Database Connectivity) es una API de Java que permite a las aplicaciones Java interactuar con bases de datos. Proporciona un conjunto de clases e interfaces que facilitan la conexión a una base de datos, la ejecución de consultas SQL y la gestión de los resultados.",[304,313,315],{"id":314},"cómo-conectar-java-a-una-base-de-datos","Cómo conectar Java a una base de datos",[309,317,318],{},"Para conectar una aplicación Java a una base de datos utilizando JDBC, debes seguir estos pasos:",[320,321,322,330,341,351,364,377,387],"ol",{},[323,324,325,329],"li",{},[326,327,328],"strong",{},"Importar el controlador JDBC",": Asegúrate de tener el controlador JDBC adecuado para la base de datos que estás utilizando (por ejemplo, MySQL Connector\u002FJ para MySQL).",[323,331,332,335,336,340],{},[326,333,334],{},"Registrar el controlador",": Carga el controlador JDBC en tu aplicación utilizando ",[337,338,339],"code",{},"Class.forName()",".",[323,342,343,346,347,350],{},[326,344,345],{},"Establecer la conexión",": Utiliza ",[337,348,349],{},"DriverManager.getConnection()"," para establecer una conexión a la base de datos, proporcionando la URL de la base de datos, el nombre de usuario y la contraseña.",[323,352,353,346,356,359,360,363],{},[326,354,355],{},"Crear una declaración",[337,357,358],{},"Connection.createStatement()"," para crear un objeto ",[337,361,362],{},"Statement"," que te permitirá ejecutar consultas SQL.",[323,365,366,346,369,372,373,376],{},[326,367,368],{},"Ejecutar consultas",[337,370,371],{},"Statement.executeQuery()"," para ejecutar consultas SQL y obtener resultados, o ",[337,374,375],{},"Statement.executeUpdate()"," para ejecutar operaciones de inserción, actualización o eliminación.",[323,378,379,382,383,386],{},[326,380,381],{},"Procesar los resultados",": Si ejecutas una consulta que devuelve resultados, utiliza un objeto ",[337,384,385],{},"ResultSet"," para procesar los datos devueltos.",[323,388,389,392,393,396],{},[326,390,391],{},"Cerrar la conexión",": Asegúrate de cerrar la conexión a la base de datos utilizando ",[337,394,395],{},"Connection.close()"," para liberar recursos.",[304,398,400],{"id":399},"ejemplo-de-conexión-a-una-base-de-datos","Ejemplo de conexión a una base de datos",[402,403,408],"pre",{"className":404,"code":405,"language":406,"meta":407,"style":407},"language-java shiki shiki-themes github-dark","import java.sql.Connection;\nimport java.sql.DriverManager;\nimport java.sql.SQLException;\n\nvoid main(String[] args) {\n    String url = \"jdbc:mysql:\u002F\u002Flocalhost:3306\u002Fmydatabase\";\n    String username = \"root\";\n    String password = \"password\";\n\n    try {\n        \u002F\u002F Registrar el controlador JDBC\n        Class.forName(\"com.mysql.cj.jdbc.Driver\");\n\n        \u002F\u002F Establecer la conexión\n        Connection connection = DriverManager.getConnection(url, username, password);\n        IO.println(\"Conexión exitosa a la base de datos.\");\n        \n        \u002F\u002F Consulta SQL de ejemplo\n        String sql = \"SELECT * FROM users\";\n        Statement statement = connection.createStatement();\n        ResultSet resultSet = statement.executeQuery(sql);\n        \n        \u002F\u002F Procesar los resultados\n        while (resultSet.next()) {\n            int id = resultSet.getInt(\"id\");\n            String name = resultSet.getString(\"name\");\n            String email = resultSet.getString(\"email\");\n            IO.println(\"ID: \" + id + \", Name: \" + name + \", Email: \" + email);\n        }\n\n        \u002F\u002F Cerrar la conexión\n        connection.close();\n    } catch (ClassNotFoundException e) {\n        IO.println(\"Controlador JDBC no encontrado.\");\n        e.printStackTrace();\n    } catch (SQLException e) {\n        IO.println(\"Error al conectar a la base de datos.\");\n        e.printStackTrace();\n    }\n}\n","java","",[337,409,410,423,431,439,446,465,481,494,507,512,521,528,545,550,556,573,589,595,601,614,631,648,653,659,674,698,718,737,776,782,787,793,804,823,837,848,862,876,885,891],{"__ignoreMap":407},[411,412,415,419],"span",{"class":413,"line":414},"line",1,[411,416,418],{"class":417},"snl16","import",[411,420,422],{"class":421},"s95oV"," java.sql.Connection;\n",[411,424,426,428],{"class":413,"line":425},2,[411,427,418],{"class":417},[411,429,430],{"class":421}," java.sql.DriverManager;\n",[411,432,434,436],{"class":413,"line":433},3,[411,435,418],{"class":417},[411,437,438],{"class":421}," java.sql.SQLException;\n",[411,440,442],{"class":413,"line":441},4,[411,443,445],{"emptyLinePlaceholder":444},true,"\n",[411,447,449,452,456,459,462],{"class":413,"line":448},5,[411,450,451],{"class":417},"void",[411,453,455],{"class":454},"svObZ"," main",[411,457,458],{"class":421},"(",[411,460,461],{"class":417},"String",[411,463,464],{"class":421},"[] args) {\n",[411,466,468,471,474,478],{"class":413,"line":467},6,[411,469,470],{"class":421},"    String url ",[411,472,473],{"class":417},"=",[411,475,477],{"class":476},"sU2Wk"," \"jdbc:mysql:\u002F\u002Flocalhost:3306\u002Fmydatabase\"",[411,479,480],{"class":421},";\n",[411,482,484,487,489,492],{"class":413,"line":483},7,[411,485,486],{"class":421},"    String username ",[411,488,473],{"class":417},[411,490,491],{"class":476}," \"root\"",[411,493,480],{"class":421},[411,495,497,500,502,505],{"class":413,"line":496},8,[411,498,499],{"class":421},"    String password ",[411,501,473],{"class":417},[411,503,504],{"class":476}," \"password\"",[411,506,480],{"class":421},[411,508,510],{"class":413,"line":509},9,[411,511,445],{"emptyLinePlaceholder":444},[411,513,515,518],{"class":413,"line":514},10,[411,516,517],{"class":417},"    try",[411,519,520],{"class":421}," {\n",[411,522,524],{"class":413,"line":523},11,[411,525,527],{"class":526},"sAwPA","        \u002F\u002F Registrar el controlador JDBC\n",[411,529,531,534,537,539,542],{"class":413,"line":530},12,[411,532,533],{"class":421},"        Class.",[411,535,536],{"class":454},"forName",[411,538,458],{"class":421},[411,540,541],{"class":476},"\"com.mysql.cj.jdbc.Driver\"",[411,543,544],{"class":421},");\n",[411,546,548],{"class":413,"line":547},13,[411,549,445],{"emptyLinePlaceholder":444},[411,551,553],{"class":413,"line":552},14,[411,554,555],{"class":526},"        \u002F\u002F Establecer la conexión\n",[411,557,559,562,564,567,570],{"class":413,"line":558},15,[411,560,561],{"class":421},"        Connection connection ",[411,563,473],{"class":417},[411,565,566],{"class":421}," DriverManager.",[411,568,569],{"class":454},"getConnection",[411,571,572],{"class":421},"(url, username, password);\n",[411,574,576,579,582,584,587],{"class":413,"line":575},16,[411,577,578],{"class":421},"        IO.",[411,580,581],{"class":454},"println",[411,583,458],{"class":421},[411,585,586],{"class":476},"\"Conexión exitosa a la base de datos.\"",[411,588,544],{"class":421},[411,590,592],{"class":413,"line":591},17,[411,593,594],{"class":421},"        \n",[411,596,598],{"class":413,"line":597},18,[411,599,600],{"class":526},"        \u002F\u002F Consulta SQL de ejemplo\n",[411,602,604,607,609,612],{"class":413,"line":603},19,[411,605,606],{"class":421},"        String sql ",[411,608,473],{"class":417},[411,610,611],{"class":476}," \"SELECT * FROM users\"",[411,613,480],{"class":421},[411,615,617,620,622,625,628],{"class":413,"line":616},20,[411,618,619],{"class":421},"        Statement statement ",[411,621,473],{"class":417},[411,623,624],{"class":421}," connection.",[411,626,627],{"class":454},"createStatement",[411,629,630],{"class":421},"();\n",[411,632,634,637,639,642,645],{"class":413,"line":633},21,[411,635,636],{"class":421},"        ResultSet resultSet ",[411,638,473],{"class":417},[411,640,641],{"class":421}," statement.",[411,643,644],{"class":454},"executeQuery",[411,646,647],{"class":421},"(sql);\n",[411,649,651],{"class":413,"line":650},22,[411,652,594],{"class":421},[411,654,656],{"class":413,"line":655},23,[411,657,658],{"class":526},"        \u002F\u002F Procesar los resultados\n",[411,660,662,665,668,671],{"class":413,"line":661},24,[411,663,664],{"class":417},"        while",[411,666,667],{"class":421}," (resultSet.",[411,669,670],{"class":454},"next",[411,672,673],{"class":421},"()) {\n",[411,675,677,680,683,685,688,691,693,696],{"class":413,"line":676},25,[411,678,679],{"class":417},"            int",[411,681,682],{"class":421}," id ",[411,684,473],{"class":417},[411,686,687],{"class":421}," resultSet.",[411,689,690],{"class":454},"getInt",[411,692,458],{"class":421},[411,694,695],{"class":476},"\"id\"",[411,697,544],{"class":421},[411,699,701,704,706,708,711,713,716],{"class":413,"line":700},26,[411,702,703],{"class":421},"            String name ",[411,705,473],{"class":417},[411,707,687],{"class":421},[411,709,710],{"class":454},"getString",[411,712,458],{"class":421},[411,714,715],{"class":476},"\"name\"",[411,717,544],{"class":421},[411,719,721,724,726,728,730,732,735],{"class":413,"line":720},27,[411,722,723],{"class":421},"            String email ",[411,725,473],{"class":417},[411,727,687],{"class":421},[411,729,710],{"class":454},[411,731,458],{"class":421},[411,733,734],{"class":476},"\"email\"",[411,736,544],{"class":421},[411,738,740,743,745,747,750,753,755,758,761,763,766,768,771,773],{"class":413,"line":739},28,[411,741,742],{"class":421},"            IO.",[411,744,581],{"class":454},[411,746,458],{"class":421},[411,748,749],{"class":476},"\"ID: \"",[411,751,752],{"class":417}," +",[411,754,682],{"class":421},[411,756,757],{"class":417},"+",[411,759,760],{"class":476}," \", Name: \"",[411,762,752],{"class":417},[411,764,765],{"class":421}," name ",[411,767,757],{"class":417},[411,769,770],{"class":476}," \", Email: \"",[411,772,752],{"class":417},[411,774,775],{"class":421}," email);\n",[411,777,779],{"class":413,"line":778},29,[411,780,781],{"class":421},"        }\n",[411,783,785],{"class":413,"line":784},30,[411,786,445],{"emptyLinePlaceholder":444},[411,788,790],{"class":413,"line":789},31,[411,791,792],{"class":526},"        \u002F\u002F Cerrar la conexión\n",[411,794,796,799,802],{"class":413,"line":795},32,[411,797,798],{"class":421},"        connection.",[411,800,801],{"class":454},"close",[411,803,630],{"class":421},[411,805,807,810,813,816,820],{"class":413,"line":806},33,[411,808,809],{"class":421},"    } ",[411,811,812],{"class":417},"catch",[411,814,815],{"class":421}," (ClassNotFoundException ",[411,817,819],{"class":818},"s9osk","e",[411,821,822],{"class":421},") {\n",[411,824,826,828,830,832,835],{"class":413,"line":825},34,[411,827,578],{"class":421},[411,829,581],{"class":454},[411,831,458],{"class":421},[411,833,834],{"class":476},"\"Controlador JDBC no encontrado.\"",[411,836,544],{"class":421},[411,838,840,843,846],{"class":413,"line":839},35,[411,841,842],{"class":421},"        e.",[411,844,845],{"class":454},"printStackTrace",[411,847,630],{"class":421},[411,849,851,853,855,858,860],{"class":413,"line":850},36,[411,852,809],{"class":421},[411,854,812],{"class":417},[411,856,857],{"class":421}," (SQLException ",[411,859,819],{"class":818},[411,861,822],{"class":421},[411,863,865,867,869,871,874],{"class":413,"line":864},37,[411,866,578],{"class":421},[411,868,581],{"class":454},[411,870,458],{"class":421},[411,872,873],{"class":476},"\"Error al conectar a la base de datos.\"",[411,875,544],{"class":421},[411,877,879,881,883],{"class":413,"line":878},38,[411,880,842],{"class":421},[411,882,845],{"class":454},[411,884,630],{"class":421},[411,886,888],{"class":413,"line":887},39,[411,889,890],{"class":421},"    }\n",[411,892,894],{"class":413,"line":893},40,[411,895,896],{"class":421},"}\n",[309,898,899],{},"En este ejemplo, se muestra cómo conectar a una base de datos MySQL, ejecutar una consulta para obtener todos los usuarios y procesar los resultados. Asegúrate de reemplazar la URL, el nombre de usuario y la contraseña con los valores correspondientes a tu configuración de base de datos.",[309,901,902],{},"Analicemos el código:",[320,904,905,911,917,924,929,941,953,958],{},[323,906,907,910],{},[326,908,909],{},"Importar clases JDBC",": Se importan las clases necesarias para manejar la conexión a la base de datos y las excepciones.",[323,912,913,916],{},[326,914,915],{},"Definir la URL y credenciales",": Se definen la URL de la base de datos, el nombre de usuario y la contraseña.",[323,918,919,921,922,340],{},[326,920,334],{},": Se carga el controlador JDBC utilizando ",[337,923,339],{},[323,925,926,927,340],{},"**Establecer la conexión: Se establece la conexión a la base de datos utilizando ",[337,928,349],{},[323,930,931,934,935,937,938,340],{},[326,932,933],{},"Ejecutar la consulta",": Se crea un objeto ",[337,936,362],{}," y se ejecuta una consulta SQL para obtener todos los registros de la tabla ",[337,939,940],{},"users",[323,942,943,945,946,949,950,952],{},[326,944,381],{},": Se utiliza un bucle ",[337,947,948],{},"while"," para iterar sobre el ",[337,951,385],{}," y se imprimen los datos de cada usuario.",[323,954,955,957],{},[326,956,391],{},": Finalmente, se cierra la conexión a la base de datos para liberar recursos.",[323,959,960,963,964,967,968,971],{},[326,961,962],{},"Manejo de excepciones",": Se manejan las excepciones ",[337,965,966],{},"ClassNotFoundException"," y ",[337,969,970],{},"SQLException"," para capturar errores relacionados con el controlador JDBC y la conexión a la base de datos.",[304,973,975],{"id":974},"conclusión","Conclusión",[309,977,978],{},"Conectar una aplicación Java a una base de datos utilizando JDBC es un proceso sencillo que permite realizar operaciones de consulta, inserción, actualización y eliminación de datos de manera eficiente. Asegúrate de manejar adecuadamente las conexiones y excepciones para garantizar la estabilidad y seguridad de tu aplicación.",[980,981,982],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":407,"searchDepth":425,"depth":425,"links":984},[985,986,987,988],{"id":306,"depth":425,"text":307},{"id":314,"depth":425,"text":315},{"id":399,"depth":425,"text":400},{"id":974,"depth":425,"text":975},"En este artículo se explicará cómo conectar una aplicación Java a una base de datos utilizando JDBC (Java Database Connectivity), lo que permite realizar operaciones de consulta, inserción, actualización y eliminación de datos de manera eficiente.","md",null,{"editButton":104},{"icon":156},{"title":155,"description":989},"Y3L9_bqQHxIQm1QItHsRkEENgzB-IEemKOI-f4Dd5-Q",[997,999],{"title":145,"path":146,"stem":147,"description":998,"icon":83,"children":-1},"En este artículo se explicarán los algoritmos de ordenamiento de procesos en sistemas operativos, que son técnicas utilizadas para determinar el orden en que los procesos se ejecutan en un sistema operativo, con el objetivo de optimizar el rendimiento y la eficiencia del sistema.",{"title":158,"path":159,"stem":160,"description":1000,"children":-1},"En este artículo se explicará el modelo cliente-servidor, que es una arquitectura de red en la que los clientes solicitan servicios o recursos a un servidor centralizado. Se discutirán los conceptos clave, las ventajas y desventajas de este modelo, así como ejemplos de su aplicación en el mundo real.",1775101373469]