📄 quickstart.po
字号:
#, fuzzymsgid ""msgstr """PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n""Last-Translator: FULL NAME <EMAIL@ADDRESS>\n""Content-Type: text/plain; charset=utf-8\n"#: index.docbook:5msgid "appended paragraph 1"msgstr "Comienzo rápido con Tomcat"#: index.docbook:8msgid "appended paragraph 2"msgstr "Empezando con Hibernate"#: index.docbook:10msgid "appended paragraph 3"msgstr "Este tutorial explica una instalación de Hibernate con el contenedor de servlets Apache Tomcat (hemos usado la versión 4.1, las diferencias con la 5.0 deben ser mínimas) para una aplicación basada en web. Hibernate trabaja bien en un entorno manejado con todos los servidores de aplicaciones J2EE importantes, o incluso en aplicaciones Java independientes. El sistema de base de datos es sólo una cuestión de cambiar la configuración del dialecto SQL de Hibernate y las propiedades de conexión."#: index.docbook:21msgid "appended paragraph 4"msgstr "Primero, tenemos que copiar todas las bibliotecas requeridas a la instalación de Tomcat. Usamos un contexto web separado (<literal>webapps/quickstart</literal>) para este tutorial, de modo que tenemos que considerar tanto la ruta de búsqueda de bibliotecas global (<literal>TOMCAT/common/lib</literal>) como también el cargador de clases a nivel de contexto en <literal>webapps/quickstart/WEB-INF/lib</literal> (para ficheros JAR) y <literal>webapps/quickstart/WEB-INF/classes</literal>. Nos referiremos a ambos niveles de cargador de clases como el classpath global y el classpath de contexto, respectivamente."#: index.docbook:32msgid "appended paragraph 5"msgstr "Ahora, copia las bibliotecas a los dos classpaths:"#: index.docbook:38msgid "appended paragraph 6"msgstr "Copia el driver JDBC para la base de datos al classpath global. Esto se requiere para el software de pool de conexiones DBCP que se distribuye con Tomcat. Hibernate usa conexiones JDBC para ejecutar SQL sobre la base de datos, de modo que, o bien tienes que proveer conexiones JDBC en pool, o bien configurar Hibernate para que use uno de los pools soportados directamente (C3P0, Proxool). Para este tutorial, copia la biblioteca <literal>pg74jdbc3.jar</literal> (para PostgreSQL 7.4 y JDK 1.4) al classpath del cargador global. Si quisieras usar una base de datos diferente, simplemente copia su apropiado driver JDBC."#: index.docbook:51msgid "appended paragraph 7"msgstr "Nunca copies nada más dentro de la ruta del cargador de clases global en Tomcat, o tendrás problemas con varias herramientas, incluyendo Log4J, commons-logging y otras. Siempre usa el classpath de contexto para cada aplicación web, esto es, copia las bibliotecas a <literal>WEB-INF/lib</literal> y tus propias clases y ficheros de configuración/propiedades a <literal>WEB-INF/classes</literal>. Ambos directorios están a nivel del classpath de contexto por defecto."#: index.docbook:62msgid "appended paragraph 8"msgstr "Hibernate está empaquetado como una biblioteca JAR. El fichero <literal>hibernate3.jar</literal> debe ser copiado en el classpath de contexto junto a las otras clases de la aplicación. Hibernate requiere algunas bibliotecas de terceros en tiempo de ejecución; éstas vienen incluídas con la distribución de Hibernate en el directorio <literal>lib/</literal>. Ver <xref linkend=\"3rdpartylibs\"/>. Copia las bibliotecas de terceros requeridas al classpath de contexto."#: index.docbook:75msgid "appended paragraph 9"msgstr "Bibliotecas de terceros de Hibernate"#: index.docbook:83msgid "appended paragraph 10"msgstr "Biblioteca"#: index.docbook:86msgid "appended paragraph 11"msgstr "Descripción"#: index.docbook:93msgid "appended paragraph 12"msgstr "antlr (requerida)"#: index.docbook:96msgid "appended paragraph 13"msgstr "Hibernate usa ANTLR para producir analizadores de consultas, esta biblioteca también se necesita en tiempo de ejecución."#: index.docbook:102msgid "appended paragraph 14"msgstr "dom4j (requerida)"#: index.docbook:105msgid "appended paragraph 15"msgstr "Hibernate usa dom4j para analizar ficheros de configuración XML y ficheros de metadatos de mapeo XML."#: index.docbook:111msgid "appended paragraph 16"msgstr "CGLIB, asm (requerida)"#: index.docbook:114msgid "appended paragraph 17"msgstr "Hibernate usa la biblioteca de generación de código para aumentar las clases en tiempo de ejecución (en combinación con reflección Java)."#: index.docbook:121msgid "appended paragraph 18"msgstr "Commons Collections, Commons Logging (requeridas)"#: index.docbook:124msgid "appended paragraph 19"msgstr "Hibernate usa varias bibliotecas de utilidad del proyecto Jakarta Commons de Apache."#: index.docbook:130msgid "appended paragraph 20"msgstr "EHCache (requerida)"#: index.docbook:133msgid "appended paragraph 21"msgstr "Hibernate puede usar varios provedores de caché para el caché de segundo nivel. EHCache es el provedor de caché por defecto si no se cambia en la configuración."#: index.docbook:140msgid "appended paragraph 22"msgstr "Log4j (opcional)"#: index.docbook:143msgid "appended paragraph 23"msgstr "Hibernate usa la API de Commons Logging, que a su vez puede usar Log4J como el mecanismo de logging subyacente. Si la biblioteca Log4J está disponible en el directorio de bibliotecas del contexto, Commons Logging usará Log4J y la configuración <literal>log4j.properties</literal> en el classpath de contexto. Un fichero de propiedades de ejemplo para Log4J se incluye con la distribución de Hibernate. Así que copia log4j.jar y el fichero de configuración (de <literal>src/</literal>) a tu classpath de contexto si quieres ver que ocurre tras escénas."#: index.docbook:157msgid "appended paragraph 24"msgstr "¿Requerida o no?"#: index.docbook:160msgid "appended paragraph 25"msgstr "Echa una mirada al fichero <literal>lib/README.txt</literal> en la distribución de Hibernate. Esta es una lista actualizada de bibliotecas de terceros distribuídas con Hibernate. Encontrarás listadas ahí todas las bibliotecas requeridas y opcionales (Observa que \"buildtame required\" significa aquí para la construcción de Hibernate, no de tu aplicación)."#: index.docbook:174msgid "appended paragraph 26"msgstr "Ahora instalamos el pooling y modo compartido de conexiones de base de datos tanto en Tomcat como Hibernate. Esto significa que Tomcat proveerá conexiones JDBC en pool (usando su funcionalidad prefabricada de pooling DBCP). Hibernate pide esas conexiones a través de JNDI. Alternativamente, puedes dejar que Hibernate maneje el pool de conexiones. Tomcat liga su pool de conexiones a JNDI; agregamos una declaración de recurso al fichero de configuración principal de Tomcat, <literal>TOMCAT/conf/server.xml</literal>:"#: index.docbook:184msgid "appended paragraph 27"msgstr "" "<![CDATA[<Context path=\"/quickstart\" docBase=\"quickstart\">\n" " <Resource name=\"jdbc/quickstart\" scope=\"Shareable\" type=\"javax.sql.DataSource\"/>\n" " <ResourceParams name=\"jdbc/quickstart\">\n" " <parameter>\n" " <name>factory</name>\n" " <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>\n" " </parameter>\n" "\n" " <!-- DBCP database connection settings -->\n" " <parameter>\n" " <name>url</name>\n" " <value>jdbc:postgresql://localhost/quickstart</value>\n" " </parameter>\n" " <parameter>\n" " <name>driverClassName</name><value>org.postgresql.Driver</value>\n" " </parameter>\n" " <parameter>\n" " <name>username</name>\n" " <value>quickstart</value>\n" " </parameter>\n" " <parameter>\n" " <name>password</name>\n" " <value>secret</value>\n" " </parameter>\n" "\n" " <!-- DBCP connection pooling options -->\n" " <parameter>\n" " <name>maxWait</name>\n" " <value>3000</value>\n" " </parameter>\n" " <parameter>\n" " <name>maxIdle</name>\n" " <value>100</value>\n" " </parameter>\n" " <parameter>\n" " <name>maxActive</name>\n" " <value>10</value>\n" " </parameter>\n" " </ResourceParams>\n" "</Context>]]>"#: index.docbook:186msgid "appended paragraph 28"msgstr "El contexto que configuramos en este ejemplo se llama <literal>quickstart</literal>, su base es el directorio <literal>TOMCAT/webapp/quickstart</literal>. Para acceder a cualquier servlet, llama a la ruta <literal>http://localhost:8080/quickstart</literal> en tu navegador (por supuesto, agregando el nombre del servlet como se mapee en tu <literal>web.xml</literal>). Puedes también ir más allá y crear ahora un servlet simple que tenga un método <literal>process()</literal> vacío."#: index.docbook:196msgid "appended paragraph 29"msgstr "Tomcat provee ahora conexiones a través de JNDI en <literal>java:comp/env/jdbc/quickstart</literal>. Si tienes problemas obteniendo el pool de conexiones en ejecución, refiérete a la documentación de Tomcat. Si obtienes mensajes de excepción del driver JDBC, intenta instalar primero el pool de conexiones JDBC sin Hibernate. Hay disponibles en la Web tutoriales de Tomcat y JDBC."#: index.docbook:205msgid "appended paragraph 30"msgstr "Tu próximo paso es configurar Hibernate. Hibernate tiene que saber cómo debe obtener conexiones JDBC. Usamos la configuración de Hibernate basada en XML. El otro enfoque, usando un ficheros de propiedad, es casi equivalente pero pierde unas pocas funcionalidades que sí permite la sintaxis XML. El fichero de configuración XML se ubica en el classpath de contexto (<literal>WEB-INF/classes</literal>), como <literal>hibernate.cfg.xml</literal>:"#: index.docbook:214msgid "appended paragraph 31"msgstr "" "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n" "<!DOCTYPE hibernate-configuration PUBLIC\n" " \"-//Hibernate/Hibernate Configuration DTD//EN\"\n" " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">\n" "\n" "<hibernate-configuration>\n" "\n" " <session-factory>\n" "\n" " <property name=\"connection.datasource\">java:comp/env/jdbc/quickstart</property>\n" " <property name=\"show_sql\">false</property>\n" " <property name=\"dialect\">org.hibernate.dialect.PostgreSQLDialect</property>\n" "\n" " <!-- Mapping files -->\n" " <mapping resource=\"Cat.hbm.xml\"/>\n" "\n" " </session-factory>\n" "\n" "</hibernate-configuration>]]>"#: index.docbook:216msgid "appended paragraph 32"msgstr "Desactivamos el registro (logging) de comandos SQL y decimos a Hibernate qué dialecto SQL de base de datos se usa y dónde obtener conexiones JDBC (declarando la dirección JNDI del pool ligado a Tomcat). El dialecto es una configuración requerida, las bases de datos difieren en su interpretación del \"estándar\" de SQL. Hibernate cuidará de las diferencias y viene con dialectos incluídos para todas las principales bases de datos comerciales y de código abierto."#: index.docbook:227msgid "appended paragraph 33"msgstr "Una <literal>SessionFactory</literal> es el concepto de Hibernate de un almacén de datos solo. Pueden usarse múltiples bases de datos creando múltiples ficheros de configuración XML y creando múltiples objetos <literal>Configuration</literal> y <literal>SessionFactory</literal> en tu aplicación."#: index.docbook:235msgid "appended paragraph 34"msgstr "El último elemento del <literal>hibernate.cfg.xml</literal> declara <literal>Cat.hbm.xml</literal> como el nombre de un fichero de mapeo XML para la clase persistente <literal>Cat</literal>. Este fichero contiene los metadatos para el mapeo de la clase POJO <literal>Cat</literal> a una tabla (o tablas) de base de datos. Volveremos a este fichero pronto. Escribamos primero la clase POJO y luego declaremos los metadatos de mapeo para ella."#: index.docbook:248msgid "appended paragraph 35"msgstr "Primera clase persistente"#: index.docbook:250msgid "appended paragraph 36"msgstr "Hibernate trabaja mejor con el modelo de programación de los Viejos Objetos Planos de Java (POJOs, a veces llamados Ordinarios Objetos Planos de Java) para clases persistentes. Un POJO es como un JavaBean, con las propiedades de la clase accesible vía métodos getter y setter, encapsulando la representación interna de la interfaz publicamente visible (Hibernate puede también acceder a los campos directamente, si se necesita):"#: index.docbook:260msgid "appended paragraph 37"msgstr "" "<![CDATA[package org.hibernate.examples.quickstart;\n" "\n" "public class Cat {\n" "\n" " private String id;\n" " private String name;\n" " private char sex;\n" " private float weight;\n" "\n" " public Cat() {\n" " }\n" "\n" " public String getId() {\n" " return id;\n" " }\n" "\n" " private void setId(String id) {\n" " this.id = id;\n" " }\n" "\n" " public String getName() {\n" " return name;\n" " }\n" "\n" " public void setName(String name) {\n" " this.name = name;\n"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -