Bonjour,
Je suis débutant en java et travaille sur un petit projet de gestion de plateforme collaborative.
Mon projet implémente hibernate pour la persistence des données.
Mais j'ai problème de connexion JDBC comme l'indice le message d'erreur :
Lorsque je me connexion en jdbc directement, je n'ai pas message d'erreur.
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 ... INFO: HHH000397: Using ASTQueryTranslatorFactory Hibernate: select utilisateu0_.id as id1_0_, utilisateu0_.email as email2_0_, utilisateu0_.nom as nom3_0_, utilisateu0_.photo as photo4_0_, utilisateu0_.prenom as prenom5_0_ from Utilisateur utilisateu0_ Exception in thread "main" java.lang.UnsupportedOperationException: The application must supply JDBC connections at org.hibernate.engine.jdbc.connections.internal.UserSuppliedConnectionProviderImpl.getConnection(UserSuppliedConnectionProviderImpl.java:44) at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:35) at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:106) at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:136) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.connection(StatementPreparerImpl.java:47) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:146) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:172) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:148) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1984) at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1914) at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1892) at org.hibernate.loader.Loader.doQuery(Loader.java:937) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:340) at org.hibernate.loader.Loader.doList(Loader.java:2689) at org.hibernate.loader.Loader.doList(Loader.java:2672) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2506) at org.hibernate.loader.Loader.list(Loader.java:2501) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:504) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:395) at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:220) at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1508) at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1537) at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1505) at org.hibernate.query.Query.getResultList(Query.java:135) at com.gestion.Console.main(Console.java:21)
Fichier de persistence : persistence.xml
hibernate.properties.xml
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 <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="gestioncollaborative" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <class>com.metier.Utilisateur</class> <properties> <property name="jakarta.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://127.0.0.1:3306/gestioncollaborative"/> <property name="jakarta.persistence.jdbc.user" value="kara"/> <property name="jakarta.persistence.jdbc.password" value="kara23"/> <property name="jakarta.persistence.schema-generation.database.action" value="create" /> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.highlight_sql" value="true" /> <property name="hdm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>
Fichier bean Utilisateur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 hibernate.connection.driver_class = com.mysql.jdbc.Driver hibernate.connection.url = jdbc://127.0.0.1:3306/gestioncollaborative hibernate.connection.username = root hibernate.connection.password = "" hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect jakarta.persistence.schema-generation.database.action = create
Fichier main
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 package com.metier; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table( name ="Utilisateur" ) public class Utilisateur { @Id @GeneratedValue( strategy=GenerationType.IDENTITY ) private int id; private String nom; private String prenom; private String email; private String photo; public Utilisateur(){ this("unknow", "unknow", "unknow", "unknow"); } public Utilisateur(String pNom, String pPrenom, String pEmail, String pPhoto) { this.setNom( pNom ); this.setPrenom( pPrenom ); this.setEmail( pEmail ); this.setPhoto( pPhoto ); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getPrenom() { return prenom; } public void setPrenom(String prenom) { this.prenom = prenom; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPhoto() { return photo; } public void setPhoto(String photo) { this.photo = photo; } }
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 package com.gestion; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import com.metier.Utilisateur; public class Console { public static void main(String[] args) { EntityManagerFactory entityManagerFactory = null; EntityManager entityManager = null; entityManagerFactory = Persistence.createEntityManagerFactory("gestioncollaborative"); entityManager = entityManagerFactory.createEntityManager(); List<Utilisateur> utilisateurs = entityManager.createQuery( "from Utilisateur", Utilisateur.class ).getResultList(); for (Utilisateur user : utilisateurs) { System.out.println( user ); } } }
Partager