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 :
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)
Lorsque je me connexion en jdbc directement, je n'ai pas message d'erreur.

Fichier de persistence : persistence.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>
hibernate.properties.xml

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 bean Utilisateur
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;
	}
 
 
}
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
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 );
		}
 
	}
 
}