===== siette.util.corpus.DatabaseTable ===== Es una clase heredera de [[siette.util.corpus.Table]] que sirve para manejar tablas procedentes de [[bases de datos]] por lo que contiene todos los métodos que ya se han descrito y algunos más. En esta página solo se hace referencia a estos nuevos métodos. ==== Constructores ==== public DatabaseTable(int dbms, String host, int port, String user, String schema, String passwd, String tableName, String charSet, boolean filterHTML) public DatabaseTable(int dbms, String host, String user, String schema, String passwd) public DatabaseTable(String propFile) public DatabaseTable(DatabaseTable table) public DatabaseTable() Estos métodos contruyen un objeto de la clase inicializando los parámetros de conexión a la base de datos, mediante los siguientes parámetros: ^ Parámetro ^ Descripción ^Valor por defecto^ |''dbms'' | Sistema gestor de base de datos. Puede tomar tres valores, ''BaseDatos.SGBD_POSTGRES'', ''BaseDatos.SGBD_MYSQL'' o ''BaseDatos.SGBD_ORACLE'' | | |''host'' | Direccion ip, numérica o simbólica de la base de datos | | |''port'' | Puerto de conexión, si no se especifica, se toma por defecto el valor por defecto del puerto segun el sistema de gestión de la base de datos. | 5432 (postgres); 3306 (mysql); 1521 (oracle) | |''schema'' | Dependiendo del sistema de base de datos puede tener distintos significados, por ejemplo en Oracle es el ''SID'' | | |''user'' | Nombre del usuario que se conecta a la base de datos | | |''passwd'' | Contraseña del usuario | | |''tableName'' | Nombre por defecto de la tabla que se va a usar. Pueden usarse tanto tablas como vistas | | |''charSet'' | Codificación de caracteres. | ''UTF-8'' | |''filterHTML'' | Indica a Siette que el fichero contiene caracteres especiales y que al presentarlos debe convertirlos en entidades HTML. | ''true'' | |''propFile'' | Direccion relativa del fichero que contiene los datos de conexión | | El fichero de propiedades tiene la la estructura de un fichero de [[https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html|java.util.Properties]] con los siguientes campos (se muestra un ejemplo): dbms=postgres ip=192.168.169.140 puerto=5432 usuario=dbpedia sid=dbpedia clave=****** ==== setDatabase ==== public void setDatabase(int dbms, String host, int port, String user, String schema, String passwd) public void setDatabase(int dbms, String host, String user, String schema, String passwd) public void setDatabase(String propFile) public void setDatabase(Properties prop) public void setDBMS(String dbms) public void setHost(String host) public void setPort(String port) public void setSchema(String schema) public void setUser(String user) public void setPassword(String passwd) Cuando se crea solo el objeto usando el constructor sin argumento, se usa un conjunto de métodos para asignar valores a los parámetros de conexión y a los atributos de clase. El significado de los parámetros es el mismo que se explica en la sección de [[#constructores]] ==== setTableName, setWhere, setKey ==== public void setTableName(String name, String key, String where) public void setTableName(String name) public void addWhere(String cond) public void setKey(String key) Establece el nombre de la tabla sobre la que se hará la consulta, la condición o parte ''WHERE'' de la sentencia [[wp>SQL|SQL]] y la clave principal de la tabla, necesaria para poder descartar los registros con la opción ''setExclusive'' ==== query ==== public Table query(String query) Lanza una consulta [[wp>SQL|SQL]] (contenida en el parámetro ''query'') sobre la base de datos, y construye un objeto de la clase [[siette.util.corpus.Table]] a partir de él se aplican los métodos de esta clase. La diferencia entre las consultas realizadas mediante métodos ''selectTable'', ''selectSet'' y ''selectAll'' de la clase [[siette.util.corpus.Table|Table]] y de la clase [[siette.util.corpus.DatabaseTable|DatabaseTable]] es que en el primer caso se carga en memoria la tabla entera, miesntras que en el segundo todas las operaciones se realizan mediante llamadas a la base de datos. Tambien puede obtenerse una tabla a traves de las funciones [[siette.util.corpus.table#selectTable]] que se reimplementan en esta subclase. ==== closeDatabase ==== public void closeDatabase() Cierra la conexión a la base de datos. En general no es necesario utilizar esta llamada, salvo en caso de que se produzca alguna excepción, puesto que cada consulta se cierra al terminar.