1. Connectant a bases de dades
1.1. Controlador JDBC de MySQL
Per tal de crear programes Java utilitzant el controlador de MySQL, necessitem carregar-lo en el nostre programa i prèviament en el nostre entorn de desenvolupament. Si utilitzeu un IDE com IntelliJ IDEA o Eclipse, podeu afegir el controlador JDBC com a dependència del vostre projecte. Si utilitzeu Maven o Gradle, podeu afegir la dependència al vostre fitxer pom.xml o build.gradle.
- Hem de trobar la versió del controlador del nostre servidor JDBC, i ho podem trobar al repositori central de Maven https://mvnrepository.com.
- Cerquem
mysql jdbc, i obtindrem com a primer resultat MySQL Connector/J. - Assegureu-vos de seleccionar la versió correcta, i després seleccioneu el gestor de paquets (gradle, maven, etc.) i obtindreu:
- Quan deseu o compileu el vostre projecte, podreu importar els controladors correctament.

1.2. URL de connexió
Un cop hagueu importat el controlador, heu de dir al vostre programa Java com connectar-vos a la vostra base de dades i finalment connectar-vos-hi. Per a aquesta tasca, hem de crear una Connection utilitzant una URL especial anomenada URL de connexió. Com altres URL, una URL de connexió pot contenir:
- Protocol \(\rightarrow\) utilitzarem
jdbc. - SGBD \(\rightarrow\) podríem utilitzar
mysql,postgres,sqlite,sqlservero qualsevol SGBD amb un connector JDBC. - Adreça del servidor \(\rightarrow\) podem utilitzar tant un nom complet com l'adreça IP del servidor.
- [opcional]Port \(\rightarrow\) el port on el servidor està escoltant. Si no s'utilitza cap, el controlador intentarà connectar-se al port per defecte. Recordeu separar el port de l'adreça amb
:. - Altres paràmetres, separant-los amb
?al principi i amb&entre els paràmetres. Per exemple:- user=
usuari - pass=
contrasenya - useUnicode=
true - characterEncoding=
UTF-8
- user=
Una mostra de URL de connexió pot ser:
| Java | |
|---|---|
Una opció millor seria:
Atenció
Tingueu en compte que tots dos exemples són codi hard-coded, ja que teniu els valors del servidor (usuari i contrasenya) escrits dins de cadenes de text. És millor opció emmagatzemar aquests valors dins de variables o fitxers de propietats.
1.3. Classe Connection
En Java, la classe necessària per gestionar el controlador és java.sql.DriverManager. Intenta carregar els controladors del sistema quan llegeix la propietat dels controladors JDBC, però podem indicar que es carregui utilitzant la instrucció:
| Java | |
|---|---|
La classe que centralitzarà totes les operacions amb la base de dades és java.sql.Connection, i l'hem d'obtenir des del DriverManager amb qualsevol dels 3 mètodes estàtics que té:
static Connection getConnection(String url)\(\rightarrow\) Retorna una connexió, si és possible, a la base de dades amb els paràmetres especificats a la URL de connexió. Recordeu de crear una URL de connexió a partir de la part anterior.static Connection getConnection(String url, Properties info)\(\rightarrow\) Retorna una connexió, si és possible, a la base de dades, amb alguns paràmetres especificats a la URL i altres en un objecte de propietats (Propertiesclasse estudiada a la unitat 1). Veurem exemples més endavant.static Connection getConnection(String url, String user, String pass)\(\rightarrow\) Retorna una connexió, si és possible, a la base de dades amb els paràmetres especificats a la URL. Les dades d'usuari i contrasenya es proporcionen en dos paràmetres addicionals, de manera que no cal escriure'ls a la URL de connexió.
Una mostra inicial serà:
Amb l'objecte Connection que tenim ara connectat, enviarem les nostres consultes i demanarem informació, com veurem més endavant.
1.4. Organitzant la nostra connexió
La nostra aplicació s'ha de connectar a una (o més) bases de dades. Podem fer moltes peticions a aquestes base de dades, i si estem implementant una aplicació multithreaded, el nombre de peticions pot augmentar molt. Per això, hem de controlar on i quan es creen i es tanquen les connexions. Una bona idea és crear una classe que encapsuli tots aquests processos. L'esquelet d'aquesta classe seria el següent:
1.4.1. Exercici resolt
Crea un projecte únic amb dues classes. Una per connectar-te a la teva base de dades, com l'últim exemple, i una classe principal que es connecti i mostri si hi ha hagut algun error.
La solució de l'exercici està enllaçada aquí connexio.properties i ConnexioDB.java