Si tenemos una conexión a una base de datos y vamos a desplegar nuestro código por diferentes entornos será muy útil el utilizar propiedades de conexión JDBC. La idea es que en cada entorno de ejecución: desarrollo, implantación y producción es probable que tengamos información de acceso a la base de datos diferente.
En ese caso podemos poner el usuario y password en un fichero de propiedades el cual podemos pasar a la conexión JDBC contra nuestra base de datos.
La idea es crear un fichero de propiedades. Para el ejemplo vamos a hacerlo directamente por código:
Properties p = new Properties();
p.put("user", "usuario");
p.put("password","contraseña");
Los atributos que añadimos a nuestra propiedades son «user» y «password» que son los que coinciden con el usuario y contraseña de conexión a la base de datos.
Si bien, en este fichero de propiedades podremos especificar otros atributos de configuración que esté esperando la base de datos. Por ejemplo si utilizamos una base de datos MySQL podemos encontrar algunos como:
- jdbcCompliantTruncation, para forzar truncado de campos en inserción.
- cachePrepStmts, cachear los
PreparedStatement
. - enableQueryTimeouts, activar timeouts en la ejecución de las queries.
- roundRobinLoadBalance, para balancear con nodos esclavos.
- autoReconnect, para haver failover sobre un nodo esclavo.
- …
Ahora estableceremos la conexión mediante el método .getConnection()
. En este caso la estructura de llamada será el indicarle la URL de conexión y el objeto con las propiedades como segundo parámetro.
Connection con = null;
String sURL = "jdbc:mysql://localhost:3306/lineadecodigo";
con = DriverManager.getConnection(sURL,p);
En este caso, para simplificar el código hemos insertado las propiedades directamente en el objeto Properties mediante código, pero podríais cargar el fichero de propiedades de forma externa.
Properties prop = new Properties();
InputStream is = null;
try {
is=new FileInputStream("fichero.properties");
prop.load(is);
} catch(IOException ioe) {}
Os recomiendo el artículo «Leer valores de fichero de Properties» para tener más información sobre cómo realizar esta tarea.
Una vez hemos establecido la conexión, el resto del código será como cualquier otro que quiera establecer una conexión a una base de datos con Java JDBC. En este caso habremos establecido las propiedades de conexión JDBC con un objeto Properties
.