Tabla de Contenidos
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 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 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 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 Table y de la clase 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 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.