Salut à tous,
voilà j'essaye de me mettre à hibernate et du coup, aprés un peu de lecture, j'ai pris un petit exemple sur internet pour voir comment sa marche .... et ben ca marche pas mais je ne trouve pas pourquoi.
Tout d'abord voilà ma log wildfly :
J'ai donc une servlet :
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 10:22:14,801 INFO [stdout] (default task-2) do get method 10:22:14,812 INFO [stdout] (default task-2) Init 10:22:15,007 INFO [org.hibernate.Version] (default task-2) HHH000412: Hibernate Core {5.2.9.Final} 10:22:15,009 INFO [org.hibernate.cfg.Environment] (default task-2) HHH000206: hibernate.properties not found 10:22:15,511 INFO [org.hibernate.annotations.common.Version] (default task-2) HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 10:22:15,611 WARN [org.hibernate.orm.connections.pooling] (default task-2) HHH10001002: Using Hibernate built-in connection pool (not for production use!) 10:22:15,612 INFO [org.hibernate.orm.connections.pooling] (default task-2) HHH10001005: using driver [org.mariadb.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/SuiviPoid2] 10:22:15,613 INFO [org.hibernate.orm.connections.pooling] (default task-2) HHH10001001: Connection properties: {user=tomcat, password=****} 10:22:15,613 INFO [org.hibernate.orm.connections.pooling] (default task-2) HHH10001003: Autocommit mode: false 10:22:15,616 INFO [org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl] (default task-2) HHH000115: Hibernate connection pool size: 10 (min=1) 10:22:15,673 INFO [org.hibernate.dialect.Dialect] (default task-2) HHH000400: Using dialect: org.hibernate.dialect.MySQLInnoDBDialect 10:22:15,988 INFO [org.hibernate.validator.internal.util.Version] (default task-2) HV000001: Hibernate Validator 5.2.4.Final 10:22:16,099 INFO [stdout] (default task-2) listEmployees method ... 10:22:16,239 WARN [org.hibernate.hql.internal.QuerySplitter] (default task-2) HHH000183: no persistent classes found for query class: from Employee e 10:22:16,241 INFO [org.hibernate.hql.internal.QueryTranslatorFactoryInitiator] (default task-2) HHH000397: Using ASTQueryTranslatorFactory 10:22:16,249 INFO [stdout] (default task-2) employees ... []
Et une méthode censé allez me chercher mes employés en base :
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 import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class test */ @WebServlet("/test") public class test extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("do get method"); ManageEmployee mgnt = new ManageEmployee(); mgnt.listEmployees(); response.getWriter().append("Served at: ").append(request.getContextPath()); } }
un fichier de configuration hibernate :
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 import java.util.List; import java.util.Iterator; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; public class ManageEmployee { private static SessionFactory sessionFactory; public ManageEmployee() { try { System.out.println("Init"); Configuration configuration = new Configuration().configure(); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .applySettings(configuration.getProperties()).build(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); } catch (Throwable ex) { System.err.println("Failed to create sessionFactory object." + ex); throw new ExceptionInInitializerError(ex); } } public void listEmployees() { System.out.println("listEmployees method ..."); Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); List employees = session.createQuery("from Employee e").list(); System.out.println("employees ... " + employees.toString()); for (Iterator iterator = employees.iterator(); iterator.hasNext();) { Employee employee = (Employee) iterator.next(); System.out.print("First Name: " + employee.getFirstName()); System.out.print(" Last Name: " + employee.getLastName()); System.out.println(" Salary: " + employee.getSalary()); } tx.commit(); } catch (HibernateException e) { if (tx != null) tx.rollback(); e.printStackTrace(); } finally { session.close(); } } }
et un fichier de mapping :
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 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- local connection properties --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/MaDatabase</property> <property name="hibernate.connection.driver_class">org.mariadb.jdbc.Driver</property> <property name="hibernate.connection.username">local</property> <property name="hibernate.connection.password">p@ssword</property> <property name="hibernate.connection.pool_size">10</property> <!-- dialect for MySQL --> <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <property name="hibernate.show_sql">true</property> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <property name="cache.use_query_cache">false</property> <property name="show_sql">true</property> <mapping resource="Employee.hbm.xml"/> </session-factory> </hibernate-configuration>
Si vous saviez me guider ... car là je suis un peu sec ... j'essaye des choses mais sans résultat.
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 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="Employee" table="EMPLOYEE"> <meta attribute="class-description"> This class contains the employee detail. </meta> <id name="id" type="int" column="id"> <generator class="native"/> </id> <property name="firstName" column="first_name" type="string"/> <property name="lastName" column="last_name" type="string"/> <property name="salary" column="salary" type="int"/> </class> </hibernate-mapping>
Merci.
Syberi@
Partager