Bonjour, je débute en java, je dois crée une petite application qui gère des personnes, et je ne sais pas trop comment gérer ma base de donnée (MySql) tout de moins je ne suis pas sur que ma methode soit vraiment dans les règle de l’art, il me semble que le mieu est d’utiliser un pool de connection. mon code marche mais bon. Bien sur vous me direz JavaDoc, mais pas de bol, mon english est tres mauvais . C’est pourquoi j’aurais souhaiter avoir votre avis sur celui-ci. Et savoir si cette methode est juste.
Merci a vous
Voici le code en question;
Une class DataBase qui est un singleton qui initialise un MysqlConnectionPoolDataSource
Et permet au autres class de récupéré une connection (d’un pool de connection i je me goure pas)
Une class Personne qui n’est en fait qu’un genre de bean (j’ai simplifier volontairement) avec un getter et setter pour chaque propriété
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 import com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource; import java.sql.Connection; import java.sql.SQLException; public class DataBase { private static DataBase instance; private MysqlConnectionPoolDataSource pooledDataSource; private DataBase(){ System.out.println("Construct DataBase"); this.initConectionPoolDataSource(); } public static DataBase getInstance(){ if (null == instance) { instance = new DataBase(); } return instance; } public void initConectionPoolDataSource(){ MysqlConnectionPoolDataSource pc = new MysqlConnectionPoolDataSource(); pc.setServerName ("localhost"); pc.setUser("root"); pc.setPassword(""); pc.setDatabaseName("database"); this.pooledDataSource = pc; } public Connection getConnection() throws SQLException { return this.pooledDataSource.getPooledConnection().getConnection(); } }
Une class PersonneManager qui se charge de faire les requettes SQL ( a l’aide de DataBase) et instancie la class personne en concequence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public class Personne { private int id; private String nom; private String prenom; public void setId(int id){ this.id = id; } public int getId(){ return this.id; } public void setNom(String nom){ this.nom = nom; } public String getNom(){ return this.nom; } public void setPrenom(String prenom){ this.prenom = prenom; } public String getPrenom(){ return this.prenom; } }
et la class Main que j'utilise pour l'instant juste pour tester en fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class PersonneManager { public static Personne getPersonne(int id){ String sql ="SELECT * FROM users WHERE id="+id; Personne unePersonne = new Personne(); DataBase db = DataBase.getInstance(); Connection conn = null; try{ conn = db.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ unePersonne.setId(rs.getInt("id")); unePersonne.setNom(rs.getString("nom")); unePersonne.setPrenom(rs.getString("prenom")); } conn.close(); }catch(SQLException ex){ System.out.println(ex); } return unePersonne; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public class Main { public static void main(String[] args) { Personne p = PersonneManager.getPersonne(5); System.out.println(p.getId() +" "+ p.getNom()+" "+p.getPrenom()); } }
Partager