Bienvenida

viernes, 23 de septiembre de 2016

JAVA CON BASE DE DATOS

Tema: JAVA CON BASE DE DATOS

1.CONTENIDO:

 YOUTUBE

       1.1.- Definición:

        Conectar tus aplicaciones Java a un servidor de bases de datos es imprescindible para la funcionalidad de una solución de Software. Al igual que Sql server y C#, Mysql y Java necesitan de una interfaz que proporcione las clases necesarias para gestionar una conexión.Para comprender el funcionamiento de este enlace comenzaremos explicando como adherir el API de conexión a nuestros IDEs ( en este caso veremos como hacerlo con Netbeans y Eclipse), luego implementaremos el código para abrir la conexión. En seguida veremos como ejecutar comandos y al finalizar estudiaremos la ejecución de procedimientos almacenados.

        1.2.- Objetos Connection, Statement y ResultSet:

Los objetos Statement se crean a partir de objetos Connection con el método createStatement. Por ejemplo, suponiendo que ya exista un objeto Connection denominado conn, la siguiente línea de código crea un objeto Statement para pasar sentencias SQL a la base de datos:
Statement stmt = conn.createStatement();
Las características de los ResultSets están asociadas con la sentencia que finalmente los crea. El método Connection.createStatement permite especificar estas características de ResultSet. A continuación se ofrecen algunos ejemplos de llamadas válidas al método createStatement:
Ejemplos: método createStatement
// El siguiente código es nuevo en JDBC 2.0

Statement stmt2 = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATEABLE);

// El siguiente código es nuevo en JDBC 3.0

Statement stmt3 = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSOR_OVER_COMMIT);

 1.3.- Ejemplos:

 interfaz ResultSet
   import java.sql.*;

/**
ResultSetExample.java

Este programa muestra la utilización de ResultSetMetaData y ResultSet para visualizar todos los datos de una tabla aunque el programa que obtiene los datos no sabe cuál es el aspecto que tendrá la tabla (el usuario pasa los valores correspondientes a la tabla y a la biblioteca).
**/
public class ResultSetExample {

    public static void main(java.lang.String[] args)
    {
        if (args.length != 2) {
            System.out.println("Uso:  java ResultSetExample <biblioteca> <tabla>");
            System.out.println(" siendo <biblioteca> la biblioteca que contiene la <tabla>");
            System.exit(0);
        }

        Connection con = null;
        Statement s = null;
        ResultSet rs = null;
        ResultSetMetaData rsmd = null;

        try {
            // Obtener una conexión a base de datos y preparar una sentencia.
            Class.forName("com.ibm.db2.jdbc.app.DB2Driver");
            con = DriverManager.getConnection("jdbc:db2:*local");

            s = con.createStatement();

            rs = s.executeQuery("SELECT * FROM " + args[0] + "." + args[1]);
            rsmd = rs.getMetaData();

            int colCount = rsmd.getColumnCount();
            int rowCount = 0;
            while (rs.next()) {
                rowCount++;
                System.out.println("Datos para la fila " + rowCount);
                for (int i = 1; i <= colCount; i++)
                    System.out.println("   Fila " + i + ": " + rs.getString(i));
            }

        } catch (Exception e) {
            // Manejar los errores.
            System.out.println("Tenemos un error... ");
            e.printStackTrace();
        } finally {
            // Asegurarse de limpiar siempre.  Si la conexión se cierra, la
            // sentencia que hay debajo de ella también se cerrará.
            if (con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    System.out.println("Error grave: no se puede cerrar el objeto conexión");
                }
            }
        }
    }
}

2.RESUMEN:

DEFINICIÓN Y CONCEPTO DE BASE DE DATOS

Una base de datos es un sistema informático a modo de almacén. En este almacén se guardan grandes volúmenes de información. Por ejemplo, imaginemos que somos una compañía telefónica y deseamos tener almacenados los datos personales y los números de teléfono de todos nuestros clientes, que posiblemente sean millones de personas.

  Base de datos

Esta información es de gran volumen de tamaño: estamos hablando de veinte o treinta datos multiplicados por miles o millones de personas. La antigua gestión de datos se basaba en archivos informáticos, pero para las necesidades de hoy en día hacen falta sistemas más perfeccionados que son precisamente lo que se denomina sistema de base de datos. Llegamos a la conclusión de que necesitaríamos una base de datos para automatizar el acceso a la información y poder acceder a ella de manera rápida y fácil además de poder realizar cambios de una manera más eficiente.
Los inicios de la base de datos modernas se deben sobre todo al desarrollo realizado por el inglés Edgar Frank Codd, que propuso el primer modelo teórico relacional, es decir, definió cómo se debían relacionar los datos pertenecientes a una base de datos. Por otro lado IBM desarrolló la primera definición de lenguaje para base de datos (que definía cómo añadir y extraer información de una base de datos) llamado SEQUEL. Más tarde SEQUEL acabaría convirtiéndose en el lenguaje más utilizado hoy en día con bases de datos, el SQL.
SQL se ha convertido en un lenguaje estándar para todas las bases de datos. Hoy día es empleado por prácticamente todas las bases de datos existentes. Como en todo lenguaje ha habido mejoras y por tanto nuevas versiones a lo largo del tiempo, pero aunque cada sistema de base de datos tenga sus propias particularidades, todos comparten muchas características comunes.

3.SUMMARY: 

A database is a computer system  as a warehouse. In this store large volumes of information are stored.For example, imagine that we are a telephone company and wish to have stored personal data and telephone numbers of all our customers, who may be millions.This information is of great volume size:'re talking about twenty or thirty data multiplied by thousands or millions of people. The old management was based on computer data files, but for the needs of today need more sophisticated systems that are precisely what is called system database. We conclude that need a database to automate access to information and to access it quickly and easily make changes well in a more efficient manner.
The beginnings of modern data base are mainly due to the development by the English Edgar F. Codd, who proposed the first relational theoretical model, ie, defined how they should relate the data belonging to a database. On the other hand IBM developed the first definition of language database (defining how to add and extract information from a database) called SEQUEL. SEQUEL later would become the most widely used language today with databases, SQL.
SQL has become a standard language for all databases. Today it is used by virtually all existing databases. As in any language there have been improvements and new versions both over time, but although each database system has its own particularities, they all share many common features.

4.RECOMENDACIONES:


Si una base de datos es demasiado grande, se debe hacer un rediseño de base de datos centralizada, para que esta sea los datos en localidades donde son utilizados con mayor una base de datos distribuida ya que se pueden almacenar frecuencia, de tal manera que la mayor parte de las red.

5:CONCLUSIONES:


La implementación de una Base de Datos Distribuidas mejora el rendimiento y la accesibilidad de los datos, debido a una disminución de tráfico de la red y a un trabajo colaborativo de varios servidores como si fuera un solo.
Al culminar este trabajo, pude constatar que, la implementación de bases de datos distribuidas resulta importante ya que se puede distribuir y replicar en diferentes sitios cuando ciertos sitios locales tienen capacidades de ventaja de poder integrarse a otros sitios remotos con almacenamiento y procesamiento limitadas, pero tienen los mejores recursos por medio de una red de comunicación.
6.APRECIACION DEL EQUIPO:

7.- GLOSARIO DE TÉRMINOS:

 BI: Siglas de Business Intelligence, en español Inteligencia Empresarial o Inteligencia de Negocios. Conjunto de estrategias que a través del análisis de datos en la misma dan lugar a la creación de conocimiento.

BizTalkServer: Herramienta de Microsoft que se usa para la comunicación entre empresas o entre diferentes departamentos en empresas grandes. Permite enviar información  de forma que  interconecta sistemas heterogéneos, por ejemplo en el formato de archivo o en la forma de envío de la información, y compartir dicha información.

Cliente/Servidor: Modelo de aplicación en la que un equipo actúa como servidor y procesa las peticiones que llegan de los clientes. En SQL el ordenador en el que se ejecuta la aplicación es el servidor y los ordenadores con las aplicaciones que usan las bases de datos son los clientes. (Aunque también es posible que ambos estén en un mismo computador).

Data mart: Almacén de datos en una empresa a nivel de un departamento en concreto.

Data mining: Técnica o proceso de análisis que consiste en la búsqueda de patrones en grandes cantidades de datos. También conocido como Minería de datos. Una definición graciosa que he encontrado es: “Torturar a los datos hasta que confiesen”.

Data warehouse: Almacén de datos a nivel corporativo o empresarial.

DBO: Siglas de Database Owner, se refiere al propietario de una base de datos, al usuario que la creo.

DBA: Siglas de Database Administrator, en este caso se refiere al administrador de bases de datos, encargado de mantener el servidor RDBM.

DDL: Data Definition Language, dentro del SQL es un vocabulario usado para crear y modificar la estructura de las tablas, ejemplos: CREATE, ALTER o DROP.

DML: Data Manipulation Language, igualmente dentro del SQL es un vocabulario usado para gestionar los datos, ejemplos: SELECT, INSERT, UPDATE.

DSS: Siglas para Decisión Support Services, en español: Sistema de Soporte a la Decisión, son sistemas informaticos de apoyo que ayudan a la toma de decisiones analizando la información y dando soporte mediante herramientas OLAP.

HTML: Siglas de Hypertext Markup Language, lenguaje usado para realizar páginas web.

Identidad: En una tabla es la columna en la que aparece un valor generado automáticamente cuya misión es identificar de manera única a las filas de esa tabla.

Null: Valor que se muestra ante un valor desconocido en una base de datos.

OLAP: Online Analytical Processing, procesamiento analítico en línea, técnica usada en el análisis de datos utilizando estructuras multidimensionales, cubos OLAP, y cuyo objetivo es agilizar la consulta de grandes cantidades de datos.

OLTP: Online Transaction Processing, Procesamiento de Transacciones en Linea. Sistema usado para gestionar aplicaciones orientadas a transacciones.

RDBMS: Relational Database Management System, Sistema de gestión de bases de datos relacionales, SQL es uno de estos sistemas.

SQL: Structured Query Language, lenguaje informático para el tratamiento de base de datos.

TCP/IP: Conjunto de protocolos empleados en Internet para la comunicación entre cliente y servidor.

 XML: eXtensible Markup Language, lenguaje informático usado para almacenar datos, soporta acceso a base de datos. (Termino relacionado XBRL).

8.- BIBLIOGRAFÍA O LINOGRAFÍA:


 LINK DE SLIDESHARE


 SLIDESHARE


jueves, 15 de septiembre de 2016

I. TEMA: JDBC


    1.1.-Capa de acceso de datos,creación.


            JDBC es una especificación de un conjunto de clases y métodos de operación que             permiten a cualquier programa Java acceder a sistemas de bases de datos de forma                 homogénea. Lógicamente, al igual que ODBC, la aplicación de Java debe tener acceso a un         driver JDBC adecuado. Este driver es el que implementa la funcionalidad de todas las clases       de acceso a datos y proporciona la comunicación entre el API JDBC y la base de datos real.
    Para comunicar con una base de datos utilizando JDBC, debemos en primer lugar               establecer una conexión con la base de datos a través del driver JDBC apropiado. El API     JDBC especifica la conexión en la interfaz java.sql.Connection.
   

    1.2. Configuración de conexión con BD con NetBeans.



      Una vez que hayas abierto el NetBeans localiza la sección de Runtime Tiempo de ejecución que se localiza en el lado izquierdo de la pantalla, como se muestra a continuación:


       :
Al expandir la sección de Databases Bases de datos debe de aparecer el MySQL (Connector/J driver), en caso contrario debes de agregarlo manualmente como se describe a continuación:
       1.Da un clic derecho sobre Drivers y selecciona New Driver.


         

       2.En la ventana que aparece da clic en el botón de Add Agregar y busca el archivo .jar que                  descargaste anteriormente, el mismo que copiaste dentro de la carpeta del JDK.
      
       3.Una vez hecho lo anterior da clic en el botón de Ok o Aceptar.
         Cuando realices los pasos anteriores debe de aparecer un elemento nuevo en la sección de                  Drivers dentro de Databases de nombre MySQL (Connector/J driver).

1.3. DEFINICIÓN DE JDBC, TIPOS Y APLICACIONES


JDBC es usado para enviar comandos SQL hacia una base de datos relacional, que puede ser Oracle, Infomix, SyBase, etc.

¿Qué hace JDBC?
Establece una conexión con una BD
Envía sentencias SQL
Procesa los resultados

Connection con = DriverManager.getConnection ( "jdbc:odbc:wombat", "login", "password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) { int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); }

JDBC es una API de bajo nivel para API´s de alto nivel
Una integración de SQL hacia Java, es decir que las sentencias SQL se puedan mezclar con Java, por ejemplo, que una variable de Java pueda ser usada en una sentencia SQL para recibir o dar valores.

Un mapeo directo de las tablas de la BD hacia las clases de Java, donde cala fila de la tabla se convierte en una instancia de la clase, y donde cada columna se corresponde a un atrubuto de esa instancia.

JDBC v/s ODBC y otras API´s
ODBC no es apropiado para usar directamente con Java por que usa una interfaz en C.
Una traducción literal de la API ODBC en C, no es deseable. Por ejemplo Java no tiene punteros y la ODBC hace gran uso de ellos.
ODBC es muy difícil de aprender , hace una mezcla de acciones simples y avanzadas.
Una API como JDBC es necesario para poder desarrollar una solución “puramente de Java”

1.3.1.- Cuatro tipos de drivers JDBC










1.3.2.-Aplicaciones del controlador JDBC

Las aplicaciones de ejemplo del Controlador JDBC de Microsoft para SQL Server muestran varias características del controlador JDBC. Además, describen las prácticas recomendadas de programación que puede aplicar al usar el controlador JDBC con una base de datos de SQL Server.
Todas las aplicaciones de ejemplo se incluyen en archivos de código *.java que se pueden compilar y ejecutar en el equipo local, y se encuentran en varias subcarpetas de la siguiente ubicación:
<directorio de instalación de> \sqljdbc_ <versión> \ <idioma> \muestras
En los temas de esta sección se describe cómo configurar y ejecutar las aplicaciones de ejemplo, y se incluye una descripción de lo que demuestran.

1.4.-Uso de las Clases Class, Conecction, DriverManager

Uso de controladores de las BD
 Clase DriverManager
• Permite establecer y gestionar conexiones a las BD
 Clase SQLPermission
• Proporciona los permisos para poder usar el DriverManager a código
en ejecución dentro de un Security Manager (por ejemplo applets)
 Interfaz Driver
• Metodos para registrar y conectar controladores basados en
tecnología JDBC
 Clase DriverPropertyInfo
• Propiedades de un controlador

Interfaz con la aplicación
 Envío de instrucciones SQL a la BD
• Connection
• Métodos para crear instrucciones y para gestionar conexiones y sus
propiedades
• Statement
• Permite enviar instrucciones a la BD
• PreparedStatement
• Permite usar instrucciones preparadas o SQL básicas
• CallableStatement
• Llamada a procedimientos almacenados en la BD
• Savepoint
• Puntos de recuperación en una transacción
 Recuperación de los resultados de la consulta a la BD
• ResultSet
• Conjunto de resultados que se devuelven de una query
• ResultSetMetaData
• Información sobre las columnas del objeto ResultSet
Interfaz con la aplicación
 Correspondencia de tipos SQL con clases e interfaces de Java
• Array  SQL ARRAY
• Blob  SQL BLOB
• Clob  SQL CLOB
• Date  SQL DATE
• NClob  SQL NCLOB
• Ref  SQL REF
• RowId  SQL ROWID
• Struct  SQL STRUCT
• SQLXML  SQL XML
• Time  SQL TIME
• Timestamp  SQL TIMESTAMP
• Clase Types  constantes para tipos SQL
 Correspondencia de tipos SQL definidos por el usuario a Java
• SQLData
• SQLInput
• SQLOutput

Secuencia normal:

 Establecer la conexión con la BD

• Cargar controladores (si se usa una versión de Java inferior a la 6)
• Establecer la conexión

 Crear un objeto Statement para hacer petición a la BD

• Asociar una sentencia SQL al objeto Statement
• Proporcionar valores de los parámetros
• Ejecutar el objeto Statement

 Procesar los resultados

 Liberar recursos (cerrar la conexión)

 Si es necesario, se pueden ejecutar varias instrucciones dentro
de una transacción (propiedades ACID)

 Abrir transacción

• Crear y ejecutar instrucciones
• Procesar resultados

 Cerrar transacción

try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception ex) {
// Tratar el error
}

Los controladores se identifican con un URL JDBC de la forma
jdbc:subprotocolo:localizadorBD
• El subprotocolo indica el tipo de base de datos específico
• El localizador permite referenciar de forma única una BD
• Host y opcionalmente puerto
• Nombre de la base de datos

 La conexión a la BD se hace con el método getConnection()
 public static Connection getConnection(String url)
 public static Connection getConnection(String url, String user, String
password)
 public static Connection getConnection(String url, Properties info)
• Todos pueden lanzar la excepción SQLException

try {
conexion = DriverManager.getConnection(
"jdbc:mysql://localhost/tienda","pruebas", "pruebas");
} catch (SQLException ex) {
// Tratar el error
}

1.5.- Ejemplos

Este es un ejemplo de cómo utilizar el programa BasicJDBC. Este programa emplea un controlador JDBC nativo para IBM® Developer Kit para Java™ para construir una tabla simple y procesar una consulta que visualiza los datos de esa tabla.


//////////////////////////////////////////////////////////////////////////////////
// // Ejemplo de BasicJDBC. Este programa utiliza el controlador JDBC nativo de
// que visualice los datos de dicha tabla.
// Developer Kit para Java para crear una tabla simple y procesar una consulta // // Sintaxis de mandato: // BasicJDBC //
// IBM le otorga una licencia no exclusiva para utilizarlo como un ejemplo
////////////////////////////////////////////////////////////////////////////////// // // Este fuente es un ejemplo del controlador JDBC nativo. // a partir del cual puede generar funciones similares adaptadas
// condiciones. IBM, por lo tanto, no puede garantizar ni dar por sentada la
// a sus necesidades específicas. // // IBM suministra este código de ejemplo solo con fines ilustrativos. // solamente. Los ejemplos no se han probado minuciosamente bajo todas
// comercialización y adecuación a un propósito determinado
// fiabilidad, capacidad de servicio o funcionamiento de estos programas. // // Todos los programas que contiene este ejemplo se suministran "TAL CUAL", // sin garantías de ningún tipo. Las garantías implícitas de // se rechazan explícitamente. //
//////////////////////////////////////////////////////////////////////////////////
// IBM Developer Kit para Java // (C) Copyright IBM Corp. 2001 // Reservados todos los derechos. // US Government Users Restricted Rights - // Use, duplication, or disclosure restricted // by GSA ADP Schedule Contract with IBM Corp. //
import java.util.Properties;
// Incluir las clases Java que deban utilizarse. En esta aplicación // se utilizan muchas clases del paquete java.sql y también se utiliza // la clase java.util.Properties como parte del proceso de obtención // de una conexión con la base de datos. import java.sql.*;
// un programa debe tener un método main. El método main
// Crear una clase pública para encapsular el programa. public class BasicJDBC { // La conexión es una variable privada del objeto. private Connection connection = null; // Cualquier clase que deba ser un "punto de entrada" para ejecutar // es donde empieza el proceso cuando se llama al programa.
// En este caso, al llamar al constructor del objeto
public static void main(java.lang.String[] args) { // Crear un objeto de tipo BasicJDBC. Esto // es fundamental en la programación orientada a objetos. Una vez // creado un objeto, llamar a diversos métodos de // ese objeto para realizar el trabajo. // se crea una conexión de base de datos que los otros
// si la reconstrucción de la tabla se ha completado
// métodos utilizan para realizar el trabajo en la base de datos. BasicJDBC test = new BasicJDBC(); // Llamar al método rebuildTable. Este método asegura que // la tabla utilizada en este programa existe y tiene el aspecto // correcto. El valor de retorno es un booleano para indicar // satisfactoriamente. Si no es así, visualizar un mensaje
// procesa una sentencia SQL select con respecto a la tabla que
// y salir del programa. if (!test.rebuildTable()) { System.out.println("Se produjo una anomalía al configurar " + " para ejecutar la prueba."); System.out.println("La prueba no continuará."); System.exit(0); } // A continuación, se llama al método para ejecutar la consulta. Este método
Este es el constructor de la prueba básica JDBC. Crea una conexión
// se creó en el método rebuildTable. La salida de // esa consulta va a la salida estándar de visualización. test.runQuery(); // Por último, se llama al método cleanup. Este método // garantiza que la conexión de base de datos en la que el objeto // ha estado a la espera se ha cerrado. test.cleanup(); } /**
// la contraseña. Estos datos se emplean para establecer conexión
de base de datos que se almacena en una variable de instancia que se usará en posteriores llamadas de método. **/ public BasicJDBC() { // Una forma de crear una conexión de base de datos es pasar un URL // y un objeto java Properties al DriverManager. El siguiente // código construye un objeto Properties que contiene el ID de usuario y // con la base de datos.
// que el controlador JDBC nativo se cargue y registre con DriverManager.
Properties properties = new Properties (); properties.put("user", "cujo"); properties.put("password", "newtiger"); // Utilizar un bloque try/catch para capturar todas las excepciones que // puedan surgir del código siguiente. try { // DriverManager debe saber que existe un controlador JDBC disponible // para manejar una petición de conexión de usuario. La siguiente línea hace
// anteriormente (es decir, debe utilizar el ID de usuario
Class.forName("com.ibm.db2.jdbc.app.DB2Driver"); // Crear el objeto Connection de base de datos que este programa utiliza // en las demás llamadas de método que se realicen. El código que sigue // especifica que debe establecerse una conexión con la base de datos local // y que dicha conexión debe ajustarse a las propiedades configuradas // y la contraseña especificados).
System.out.println("Excepción capturada: " + e.getMessage());
connection = DriverManager.getConnection("jdbc:db2:*local", properties); } catch (Exception e) { // Si falla alguna de las líneas del bloque try/catch, el control pasa // a la siguiente línea de código. Una aplicación robusta intenta manejar // el problema o proporcionar más detalles. En este programa, se visualiza // el mensaje de error de la excepción, y la aplicación permite // el retorno del programa. } } /**
// Se utilizan objetos Statement para procesar sentencias SQL en la
Garantiza que la tabla qgpl.basicjdbc tiene el aspecto deseado al principio de a prueba. @returns boolean Devuelve true si la tabla se ha reconstruido satisfactoriamente; Devuelve false si se ha producido alguna anomalía. **/ public boolean rebuildTable() { // Reiniciar todas las funciones de un bloque try/catch para que se realice // un intento de manejar los errores que puedan producirse dentro de este // método. try { // base de datos. El objeto Connection se utiliza para crear un
// Utilizar el objeto sentencia para crear la tabla.
// objeto Statement. Statement s = connection.createStatement(); try { // Construir la tabla de prueba desde cero. Procesar una sentencia update // que intenta suprimir la tabla si existe actualmente. s.executeUpdate("drop table qgpl.basicjdbc"); } catch (SQLException e) { // No realizar nada si se produjo una excepción. Presuponer // que el problema es que la tabla que se ha eliminado no // existe y que se puede crear a continuación. }
// necesaria.
s.executeUpdate("create table qgpl.basicjdbc(id int, name char(15))"); // Utilizar el objeto sentencia para llenar la tabla con algunos // datos. s.executeUpdate("insert into qgpl.basicjdbc values(1, 'Frank Johnson')"); s.executeUpdate("insert into qgpl.basicjdbc values(2, 'Neil Schwartz')"); s.executeUpdate("insert into qgpl.basicjdbc values(3, 'Ben Rodman')"); s.executeUpdate("insert into qgpl.basicjdbc values(4, 'Dan Gloore')"); // Cerrar la sentencia SQL para indicar a la base de datos que ya no es s.close();
Ejecuta una consulta a la tabla de muestra y los resultados se visualizan en
// Si todo el método se ha procesado satisfactoriamente, devolver true. En este punto, // la tabla se ha creado o renovado correctamente. return true; } catch (SQLException sqle) { // Si ha fallado alguna de las sentencias SQL (que no sea la eliminación de la tabla // manejada en el bloque try/catch interno), el mensaje de error // se visualiza y se devuelve false al llamador, para indicar que la tabla // no puede completarse. System.out.println("Error in rebuildTable: " + sqle.getMessage()); return false; } } /** la salida estándar. **/ public void runQuery() {
System.out.println("--------------------");
// Reiniciar todas las funciones de un bloque try/catch para que se realice // un intento de manejar los errores que puedan producirse dentro de este // método. try { // Crear un objeto Statement. Statement s = connection.createStatement(); // Usar el objeto Statement para ejecutar una consulta SQL. Las consultas devuelven // objetos ResultSet que se utilizan para observar los datos que la consulta // proporciona. ResultSet rs = s.executeQuery("select * from qgpl.basicjdbc"); // Visualizar el principio de la 'tabla' e inicializar el contador del // número de filas devueltas. int i = 0;
// como salida.
// El método next de ResultSet se utiliza para procesar las filas de un // ResultSet. Hay que llamar al método next una vez antes de que // los primeros datos estén disponibles para verlos. Siempre que next devuelva // true, existe otra fila de datos que puede utilizarse. while (rs.next()) { // Obtener ambas columnas de la tabla para cada fila y escribir una fila en // nuestra tabla en pantalla con los datos. Luego, incrementar la cuenta // de filas que se han procesado. System.out.println("| " + rs.getInt(1) + " | " + rs.getString(2) + "|"); i++; } // Colocar un borde al final de la tabla y visualizar el número de filas
if (connection != null)
System.out.println("--------------------"); System.out.println("Se han devuelto " + i + " filas."); System.out.println("Salida completada."); } catch (SQLException e) { // Visualizar más información acerca de las excepciones SQL // generadas como salida. System.out.println("Excepción SQLException: "); System.out.println("Mensaje:....." + e.getMessage()); System.out.println("SQLState:...." + e.getSQLState()); System.out.println("Código proveedor:." + e.getErrorCode()); e.printStackTrace(); } } /** El siguiente método garantiza que se liberen los recursos JDBC que aún están asignados. **/ public void cleanup() { try { connection.close();
}
} catch (Exception e) { System.out.println("Excepción capturada: "); e.printStackTrace(); }
}

2.- RESUMEN

El Java Database Connectivity (JDBC) API es el estándar de la industria para la conectividad de base de datos independiente entre el lenguaje de programación Java y una amplia gama de bases de datos  bases de datos SQL y otras fuentes de datos tabulares, tales como hojas de cálculo o archivos planos. El API JDBC proporciona una API de nivel de llamada para el acceso a la base de datos basada en SQL.
la tecnología JDBC permite utilizar el lenguaje de programación Java para explotar "escribir una vez, ejecutar en cualquier lugar" capacidades para aplicaciones que requieren acceso a los datos empresariales. Con un controlador compatible con la tecnología JDBC, puede conectar todos los datos corporativos, incluso en un entorno heterogéneo.
La necesidad de JDBC, a pesar de la existencia de ODBC, viene dada porque ODBC es un interfaz escrito en lenguaje C, que al no ser un lenguaje portable, haría que las aplicaciones Java también perdiesen la portabilidad. Y además, ODBC tiene el inconveniente de que se ha de instalar manualmente en cada máquina; al contrario que los drivers JDBC, que al estar escritos en Java son automáticamente instalables, portables y seguros.

Toda la conectividad de bases de datos de Java se basa en sentencias SQL, por lo que se hace imprescindible un conocimiento adecuado de SQL para realizar cualquier clase de operación de bases de datos.
Aunque, afortunadamente, casi todos los entornos de desarrollo Java ofrecen componentes visuales que proporcionan una funcionalidad suficientemente potente sin necesidad de que sea necesario utilizar SQL, aunque para usar directamente el JDK se haga imprescindible.
La especificación JDBC requiere que cualquier driver JDBC sea compatible con al menos el nivel «de entrada» de ANSI SQL 92 (ANSI SQL 92 Entry Level).

Acceso de JDBC a Bases de Datos

El API JDBC soporta dos modelos diferentes de acceso a Bases de Datos, los modelos de dos y tres capas.

Modelo de dos capas

Este modelo se basa en que la conexión entre la aplicación Java o el applet que se ejecuta en el navegador, se conectan directamente a la base de datos.

Esto significa que el driver JDBC específico para conectarse con la base de datos, debe residir en el sistema local. La base de datos puede estar en cualquier otra máquina y se accede a ella mediante la red. Esta es la configuración de típica Cliente/Servidor: el programa cliente envía instrucciones SQL a la base de datos, ésta las procesa y envía los resultados de vuelta a la aplicación.

Modelo de tres capas

En este modelo de acceso a las bases de datos, las instrucciones son enviadas a una capa intermedia entre Cliente y Servidor, que es la que se encarga de enviar las sentencias SQL a la base de datos y recoger el resultado desde la base de datos. En este caso el usuario no tiene contacto directo, ni a través de la red, con la máquina donde reside la base de datos.

Este modelo presenta la ventaja de que el nivel intermedio mantiene en todo momento el control del tipo de operaciones que se realizan contra la base de datos, y además, está la ventaja adicional de que los drivers JDBC no tienen que residir en la máquina cliente, lo cual libera al usuario de la instalación de cualquier tipo de driver.

3.- SUMARY



The Java Database Connectivity (JDBC) API is the industry standard for database connectivity independent data between the Java programming language and a wide range of databases, SQL databases and other tabular data sources, such as leaves spreadsheets or flat files. The JDBC API provides a call-level API for accessing the database based on SQL.
JDBC technology allows using the Java programming language to exploit "write once, run anywhere" capabilities for applications that require access to enterprise data. With a JDBC driver that supports the technology, you can connect all corporate data even in a heterogeneous environment.
The need for JDBC, despite the existence of ODBC is given because ODBC is an interface written in C language, not being a portable language, Java applications would also perdiesen portability. And, ODBC has the disadvantage that it has to manually install on each machine; unlike JDBC drivers, that being written in Java they are automatically installable, portable and safe.


All connectivity database is based on Java SQL statements , so it is essential to a proper understanding of SQL to perform any kind of operation databases.
Although fortunately almost all Java development environments provide visual components that provide a sufficiently powerful functionality without the need to use SQL , but to use directly the JDK becomes essential .
The JDBC specification requires that any JDBC driver supports at least level " input " of ANSI SQL 92 (ANSI SQL 92 Entry Level ) .
JDBC Access to Databases
The JDBC API supports two different models of access to databases , models two and three layers.
Two-layer model
This model is based on the connection between the Java application or applet that runs in the browser, connect directly to the database .

 SLIDESHARE

This means that the specific to connect to the database JDBC driver , must reside on the local system . The database can be on any other machine and accessed via the network. This is the typical configuration Client / Server : the client program sends SQL statements to the database , it processes them and sends the results back to the application.
Tree-layer model

In this model of access to databases , the instructions are sent to an intermediate layer between client and server , which is what is responsible for sending SQL statements to the database and collect the result from the database . In this case the user does not have direct contact , or through the network, the machine where the database resides .
SLIDESHARE

This model has the advantage that the intermediate level maintained at all times control the type of operations performed against the database , and also there is the additional advantage that the JDBC drivers do not have to reside on the client machine , which frees the user from installing any driver

4.-RECOMENDACIONES

 Debido a que la Universidad cuenta con Sitio Web, esto facilita el desarrollo de nuevas aplicaciones; por lo que los códigos fuentes de él, deberían estar al alcance de los alumnos, para motivar el desarrollo de nuevas Aplicaciones Webs. Con este fin, se mantiene un patrón establecido, tal como mantener un solo tipo de fondo (background), para evitar que exista demasiadas diferencias en cada aplicación.

 El diseño y desarrollo de las nuevas aplicaciones conduce a la minimización del ingreso de datos por parte del usuario; además el lenguaje de desarrollo que se utilaza esta orientado a facilitar la ejecución en cualquier Sistema Operativo, ya que se ajusta a los
estándares reconocidos, que permite la flexibilidad de los cambios.
 Se recomienda a poner en disposición de los alumnos de la Universidad la Aplicación de consulta de notas, dado que le ahorraría costo y tiempo para la obtención de las notas requeridas, desde el punto de consultas.

 Para que exista un enlace remoto con la Base de Datos, la aplicación no debe de conectarse directamente a la Base de Datos, sino que mediante los drivers JDBC - ODBC.

 Se recomienda para el caso de los alumnos egresados que el historial de notas se encuentre a la disposición por un lapso de 5 años, desde que el alumno egresa. Para el caso de los alumnos graduados que el historial de notas se encuentre a la disposición por un lapso de 2 años, desde que el alumno se gradúa.

5.- CONCLUSIONES

 La aplicación fue desarrollada de tal forma que sea amigable para el usuario; con solo el ingreso del número de carnet, se despliega las notas del ciclo vigente y existe la opción de ir y regresar a consultar el historial de notas y el CUM. Al ser desarrollado en Java existe la ventaja de que la aplicación pueda ejecutarse en cualquier Sistema Operativo; esto
permite a que la aplicación se adapte a cualquier cambio de estructura que desee generar la Unidad de Informática de la Universidad.

 La consulta de notas a través del Sitio HTTP que contiene la Universidad tiene sus beneficios; ya que le ofrece al alumnado un nuevo servicio, donde podrán consultar sus notas desde su casa o desde un Cyber Café. Esto permitiría a la Universidad ofrecer nuevos servicios a los alumnos, además de ganar prestigio por estar a la vanguardia con la tecnología.
 Los drivers JDBC y ODBC establecen la estructura para el diseño y generación de conexiones y accesos a Base de Datos remotas; por lo que facilita el desarrollo de nuevas aplicaciones que la Universidad desee implementar en un futuro, orientados con este fin.

6.- APRECIACIÓN DEL EQUIPO


Este paquete permite conectarse a una base de datos, consultarla o actualizarla usando SQL. Su manejo es de importancia debido a la frecuencia con que las bases de datos son usadas hoy.
Así como con con Java se logra independencia de la plataforma, al trabajar con JDBC se logra además independencia del proveedor de la base de datos.
Una dificultad enfrentada por los desarrolladores de JDBC fue que existen muchos proveedores de bases de datos cada uno usando su propio protocolo. Es así como se acordó el desarrollo de una API Java para SQL, la cual accede la base de datos vía un administrador de drivers de terceros los cuales se conectan a bases de datos específicas.  Cada proveedor de bases de datos debía generar su propio driver conectable al administrador de drivers.

7.- GLOSARIO DE TÉRMINOS


Sistema numérico

Un sistema numérico lo determina el número de caracteres disponibles para representar números. El sistema decimal, por ejemplo, se basa en los números del 0 al 9, el sistema binario, en los números 1 y 2, y el hexadecimal, en un conjunto de 16 caracteres (del 0 al 9 y de la A a la F).

Enlace

La orden Vínculos se encuentra en el menú Editar. La orden sólo puede activarse si el documento actual contiene, como mínimo, un vínculo. Al insertar un objeto, por ejemplo una imagen, se puede copiar directamente en el documento o insertarlo en forma de vínculo.
Al copiar el objeto directamente en el documento, el tamaño del mismo se incrementa (como mínimo) en una proporción equivalente al tamaño del objeto en bytes. Si guarda el documento y luego lo abre en otro equipo, el objeto insertado seguirá en el mismo lugar del documento.
Si inserta el objeto como vínculo, el programa sólo introduce en ese punto una referencia al nombre de archivo. El tamaño de archivo del documento sólo se incrementa en la proporción que requiera la inclusión de la ruta y archivo. Ahora bien, si abre el documento con otro equipo, para que el objeto pueda visualizarse es imprescindible que el archivo al cual está vinculado se encuentre exactamente en la misma ubicación definida en la referencia.
Mediante Editar - Vínculos se pueden ver los archivos que están vinculados con el documento. Si es preciso, los vínculos se pueden quitar.

Base de datos SQL / Servidor SQL

Una base de datos SQL es un sistema con una interfaz SQL. Las bases de datos SQL se pueden usar en redes cliente-servidor en las cuales varios clientes disponen de acceso a un servidor central (por ejemplo, un servidor SQL), de ahí que también se denominen bases de datos de servidor SQL o servidores SQL para abreviar.
En LibreOffice, se pueden integrar bases de datos SQL externas. Se pueden ubicar tanto en el sistema local como en red. El acceso se consigue mediante ODBC o un Native Driver integrado en LibreOffice .

SQL

El Lenguaje de consultas estructurado (SQL) se utiliza para crear consultas de base de datos. LibreOffice permite formular consultas en SQL o de forma interactiva mediante el ratón.

Guardado relativo y absoluto

En varios cuadros de diálogo (por ejemplo, Herramientas ▸ Texto automático) se puede seleccionar si se guardarán los archivos de manera relativa o absoluta.
Si opta por guardar de forma relativa, las referencias a los gráficos incrustados o a otros objetos del documento se guardarán de forma relativa respecto a su ubicación en el sistema de archivos. En tal caso, no importa el lugar donde se haya grabado el directorio de referencia. Los archivos se encontrarán con independencia de su ubicación, siempre y cuando la referencia permanezca en la misma unidad o volumen. Esto es importante para que un documento esté disponible para otros equipos con una estructura de directorios, nombres de unidad o volumen totalmente distintos. También se recomienda guardar de forma relativa si se quiere crear una estructura de directorios en un servidor de Internet.
Si prefiere guardar de forma absoluta, todas las referencias a otros archivos se definirán también como absolutas y se basarán en la unidad, volumen o directorio raíz respectivos. La ventaja es que el documento que contiene las referencias se puede mover a otros directorios o carpetas y las referencias continuarán siendo válidas.
Huérfanas y viudas
Las líneas huérfanas y viudas son términos tipográficos que se vienen utilizando desde hace mucho tiempo. Una línea viuda es la última línea de un párrafo que se queda aislada en la parte superior de la página siguiente. Por su lado, la línea huérfana es la primera línea de un párrafo que se queda aislada en la parte inferior de la página anterior. LibreOffice permite evitar estos efectos antiestéticos de modo automático, en función de un determinado estilo de párrafo. Incluso se puede configurar el número mínimo de líneas que deben aparecer siempre juntas en una página.

RTF

RTF (Rich Text Format, Formato de texto enriquecido) es un formato de archivo desarrollado para el intercambio de archivos de texto. Una de sus características especiales es que el formato se convierte en información de texto legible directamente. Desgraciadamente, los archivos creados son relativamente grandes en comparación con otros formatos.

Base de datos relacional

Una base de datos relacional es una colección de elementos de datos organizada como un conjunto de tablas descritas formalmente, mediante el cual se puede acceder a los datos y reorganizarlos de muchas maneras distintas, sin que sea necesario volver a ordenar las tablas de la base de datos.
Un sistema de gestión de bases de datos relacional (RDBMS) es un programa que permite crear, actualizar y administrar una base de datos relacional. Un RDBMS utiliza expresiones SQL (Structured Query Language, Lenguaje de consulta estructurado) que el usuario escribe o que se encuentran en un programa de aplicación y crea, actualiza o proporciona acceso a la base de datos.
Un buen ejemplo de base de datos relacional es una base de datos de compras con tablas de Cliente, Compra y Factura. La tabla Factura no contiene realmente datos de clientes ni de compras; no obstante, sí contiene, a través de un vínculo relacional o relación, referencias a los campos correspondiente de las tablas de clientes y de compras (por ejemplo, el campo ID cliente de la tabla de clientes).

Conformidad de registro

Conformidad de registro es un concepto tipográfico que se emplea en impresión. Este término alude a la impresión congruente de las líneas en un área de tipo en la parte anterior y posterior de las páginas de libros, periódicos y revistas. La función Conformidad de registro facilita la legibilidad de estas páginas al evitar que las sombras grises brillen entre las líneas de texto. El término conformidad de registro también se refiere a las líneas en columnas de texto adyacentes que tienen la misma altura.
Si un párrafo, estilo de párrafo o estilo de página se definen con conformidad de registro, las líneas de referencia de los caracteres afectados se alinean respecto a una cuadrícula vertical de página, sea cual sea el tamaño del tipo de letra o de si hay o no gráficos. Si lo desea, la configuración de la cuadrícula se puede establecer como propiedad de Estilo de página.

Clave primaria

Una clave principal actúa como identificador exclusivo de campos de bases de datos. La identificación exclusiva de campos de bases de datos se emplea enbases de datos relacionales para poder acceder a los datos de otras tablas. Si una referencia a una clave principal se efectúa desde otra tabla, se denomina clave externa.
En LibreOffice las claves primarias se definen en la vista de diseño de una tabla al seleccionar, en el menú contextual de una cabecera de fila, la orden adecuada para el campo seleccionado.

PNG

PNG (Portable Network Graphics, Imágenes de red portátiles) es un formato de archivos gráficos cuyo uso se extiende cada vez más en Internet. Los archivos están comprimidos con un factor de compresión seleccionable y, a diferencia del formato JPG, los archivos PNG se comprimen sin pérdida de información. PNG puede guardar imágenes de 24 y 8 bits en color, escala de grises y blanco y negro y, si se desea, incluir canales alfa que se pueden utilizar como atributos de transparencia. Las imágenes PNG entrelazadas se pueden cargar de modo que se muestre, por ejemplo, 1 fila (o columna) de cada 10. El resto de la imagen se carga a continuación.

OpenGL

OpenGL es un lenguaje de gráficos 3D desarrollado inicialmente por la empresa SGI (Silicon Graphics Inc). Se suelen utilizar dos dialectos de este lenguaje: Microsoft OpenGL, desarrollado para utilizarse en Windows NT, y Cosmo OpenGL, creado por SGI. Este último representa un lenguaje de gráficos independiente para todas las plataformas y cualquier tipo de equipo que se puede utilizar, incluso, en máquinas no equipadas con hardware de gráficos 3D específico.

OLE

Los objetos OLE pueden vincularse a un documento destino o incrustarse. La incrustación inserta una copia del objeto y detalles del programa fuente en el documento destino. Si desea editar el objeto, simplemente active el programa fuente haciendo una doble pulsación en el objeto.

ODBC

Conectividad abierta de bases de datos (ODBC, Open Database Connectivity) es un protocolo que permite a las aplicaciones acceder a sistemas de bases de datos. El lenguaje de consulta empleado es el Lenguaje de consultas estructurado (SQL, Structured Query Language). LibreOffice permite determinar si se utilizarán órdenes SQL para ejecutar consultas para una base de datos específica. Otra posibilidad es utilizar la ayuda interactiva para definir la consulta mediante pulsaciones del ratón y hacer que LibreOffice la traduzca a SQL automáticamente.

Objeto

Un objeto es un elemento situado en la pantalla y que contiene informaciones. Puede tratarse, por ejemplo, de los datos de una aplicación, como textos o imágenes.
Los objetos son independientes y no se influyen recíprocamente. A cada objeto que contiene datos se le asignan determinados comandos. Así, un objeto de imagen incluye comandos para la edición de imágenes; una hoja de cálculo, comandos para realizar cálculos, etc.

Menú contextual

Para activar el menú contextual de un objeto, pulse en el objeto con el botón izquierdo del ratón para seleccionarlo. A continuación, pulse con el botón derecho del ratón. Algunos menús contextuales se pueden abrir aunque no se haya seleccionado el objeto. Los menús contextuales se encuentran en casi todas partes en LibreOffice.

Ajuste entre caracteres

El interletraje, o «kerning», se refiere a aumentar o disminuir la cantidad de espacio entre pares de letras para mejorar la apariencia general del texto.
Las tablas de ajuste entre caracteres contienen información sobre los pares de letras que requieren más espaciado. Dichas tablas suelen formar parte de la fuente.

JDBC

La API Java Database Connectivity (JDBC) se puede usar para conectarse con una base de datos desde LibreOffice. Los controladores de JDBC se escriben en el lenguaje de programación Java y no son exclusivos de ninguna plataforma.

Formato

El formato se refiere a la distribución visual del texto mediante un procesador de texto o un programa de autoedición. Ello incluye la definición del formato de papel, los bordes de página, los tipos de letra y los efectos de tipo de letra, así como las sangrías y los espacios. Se puede dar formato a texto directamente o con los estilos que proporciona LibreOffice.

Botón de girar

  1. En los controles de formulario, un botón de selección es una propiedad de un campo numérico, de moneda, de fecha o de hora. Si la propiedad «Botón de selección» está activada, el campo muestra símbolos de flecha que apuntan en direcciones opuestas, ya sea vertical u horizontalmente.
  2. En el IDE de Basic, un botón de selección es el nombre usado por el campo numérico junto con los dos símbolos de flechas.
Puede escribir un valor numérico en el campo adyacente al botón de selección, o seleccione el valor con los símbolos de: flecha hacia arriba o flecha hacia abajo del botón de selección. En el teclado usted puede presionar las teclas de flecha hacia arriba o flecha hacia abajo para incrementar o reducir el valor. Usted puede presionar las teclas de Re Pág o Av Pág para seleccionar el valor máximo o mínimo.
Si el campo siguiente a un botón de selección define valores numéricos, puede definir también una Unidad de medida, por ejemplo, 1 cm o 5 mm, 12 pt o 2".

DDE

DDE significa «Dynamic Data Exchange» (‘Intercambio dinámico de datos’), un precursor de OLE, «Object Linking and Embedding» (‘Vinculación e incrustación de objetos’). DDE enlaza los objetos a través de referencias de archivo, no los incrusta.
Es posible crear un enlace DDE mediante este procedimiento: Seleccione las celdas de una hoja de Calc, cópielas en el portapapeles, cambie de hoja y vaya a Editar ▸ Pegado especial. Seleccione la opción Enlace para insertar el contenido como un enlace DDE. Cuando se active el enlace, el área de la celda insertada se leerá a partir del archivo original.

Disposición compleja de textos (CTL)

Los idiomas con disposición compleja de textos pueden poseer alguna o todas las características siguientes:
  • El idioma se escribe con caracteres o signos compuestos de varias partes
  • La dirección del texto es de derecha a izquierda.
Actualmente, LibreOffice admite como idiomas CTL el hindi, el thai, el hebreo y el árabe.
Active la funcionalidad de CTL yendo a Herramientas ▸ Opciones' ▸ Configuración de idioma ▸ Idiomas'.

Objeto Bézier

Las curvas de Bézier, así llamadas por el nombre del matemático francés (Pierre Bézier) que las desarrolló , son curvas definidas matemáticamente que se utilizan en aplicaciones gráficas bidimensionales. La curva está definida por cuatro puntos: la posición inicial, la posición final y dos posiciones intermedias. Los objetos de Bézier se pueden modificar moviendo dichos puntos con el ratón.

ASCII

Siglas correspondientes a American Standard Code for Information Interchange. ASCII es un juego de caracteres concebido para la visualización de los mismos en los PC. Está formado por 128 caracteres, entre los que se incluyen letras, cifras, signos de puntuación y símbolos. El juego de caracteres ASCII ampliado contiene 256 caracteres. Cada uno de ellos tiene asignado un número irrepetible, que recibe el nombre de código ASCII.
En las páginas HTML sólo deben aparecer caracteres del conjunto de caracteres ASCII de 7 bits. El resto de caracteres, como el umlaut del alemán, se indican mediante códigos específicos. El filtro de exportación de LibreOffice efectúa las conversiones necesarias de forma automática.

Acoplar

Algunas ventanas de LibreOffice, por ejemplo la ventana de "Estilos y formateo" y el "Navegador", son ventanas "acoplables". Puede mover estas ventanas, cambiar su tamaño o acoplarlas a un borde. En cada uno de los bordes se pueden acoplar ventanas sobre o junto a otras; luego puede cambiar las proporciones relativas de cada ventana moviendo sus bordes.
Para desacoplar y volver a acoplar, presione la tecla Ctrl y haga doble clic en un área vacía de la ventana. En la ventana de "Estilos y formateo", también puede hacer un doble click sobre el área gris, cerca de los íconos, mientras mantiene presionada la tecla Ctrl.

Acoplar (Ocultación automática)

En el borde de cualquier ventana que tenga una ventana acoplada hay un botón que permite mostrarla u ocultarla.
  • Si hace clic en el extremo de la ventana para mostrar la ventana, dicha ventana se verá en pantalla hasta que se vuelva a ocultar de forma manual (con el mismo botón).
  • Si muestra la ventana haciendo clic en el borde de la ventana, se activa la función de ocultación automática. La función de ocultación automática permite mostrar momentáneamente una ventana oculta pulsando su borde. Cuando se hace clic en el documento, la ventana acoplada se oculta de nuevo.

Formatos manuales y automáticos

Al formato que se aplica a un documento sin servirse de los estilos se le denomina «formato directo». Por tal concepto se entiende modificar texto u otros objetos —por ejemplo, marcos o tablas— mediante la aplicación directa de varios atributos. El formato solo se aplica al área seleccionada y todos los cambios se deben hacer uno por uno. Por otro lado, los estilos no se aplican directamente al texto, sino que se definen en la ventana Estilos y formato y, a continuación, se aplican. Una de las ventajas es que, al cambiar un estilo, se modifican al mismo tiempo todas las partes del documento que tengan asignado dicho estilo.
Puede eliminar el formato directo del documento si selecciona todo el texto mediante Ctrl + E y yendo a Formato ▸ Limpiar formato directo.

IME

IME significa Input Method Editor (Editor de métodos de entrada). Se trata de un programa que permite al usuario escribir caracteres complejos de juegos de caracteres no occidentales a través de un teclado estándar.

8.- Biografía o Línkografía

http://www.ibm.com/support/knowledgecenter/es/ssw_ibm_i_73/rzaha/jdbctydr.htm
https://msdn.microsoft.com/es-es/library/aa342346(v=sql.110).aspx
http://developers.sun.com/product/jdbc/drivers
https://www.fdi.ucm.es/profesor/jpavon/web/48-jdbc.pdf
http://www.ibm.com/support/knowledgecenter/es/ssw_ibm_i_71/rzaha/basicjdbc.htm


 DIRECCIÓN DE SLIDESHARE