Framework Spring/Bases de données
Apparence
Il est possible d’interagir avec des bases de données via Spring.
Pour JDBC, Java Database Connectivity et H2 on aura le pom.xml suivant
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SimpleJavaProject</groupId>
<artifactId>SimpleJavaProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Le code java est le suivant :
package mainPackage;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
public class MainClass
{
public static void main(String[] args)
{
EmbeddedDatabaseBuilder embeddedDatabaseBuilder = new EmbeddedDatabaseBuilder();
EmbeddedDatabase embeddedDatabase = embeddedDatabaseBuilder.setType(EmbeddedDatabaseType.H2).setName("testDB;MODE=MySQL").build();
JdbcTemplate template = new JdbcTemplate(embeddedDatabase);
template.execute("create table sw (id int,name varchar)");
template.execute("insert into sw (id,name) values (11,'A')");
template.execute("insert into sw (id,name) values (38,'B')");
template.execute("insert into sw (id,name) values (42,'THX')");
System.out.println(template.queryForObject("select max(id) from sw",Integer.class));
}
}
On crée une base de données embarquée dans l'application de type H2, ensuite le lien vers cette base de données. On lance 3 insertions dans une table nouvellement créée et on affiche le résultat de l'identifiant le plus grand, on obtient logiquement 42.