Bonjour,
Je veux tester l'intégration de Spring et Hibernate dans une petite application
Elle consiste à insérer un nouveau utilisateur dans une base de donnée
Pour le faire : j'utilise Spring 2.5 Hibernate 3 MySql 5
Je vous copie mes codes :
la classe UserDAOImpl
la classe User
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class UserDAOImpl extends HibernateDaoSupport implements UserDAO { @Override public void saveUser(User user) { getHibernateTemplate().saveOrUpdate(user); } }
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 @Entity @Table(name = "user", catalog = "database") public class User implements java.io.Serializable { private Integer idUser; private String loginUser; private String passwordUser; public User() { } public User(String loginUser, String passwordUser) { this.loginUser = loginUser; this.passwordUser = passwordUser; } @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "id_user", unique = true, nullable = false) public Integer getIdUser() { return this.idUser; } public void setIdUser(Integer idUser) { this.idUser = idUser; } @Column(name = "login_user", nullable = false, length = 25) public String getLoginUser() { return this.loginUser; } public void setLoginUser(String loginUser) { this.loginUser = loginUser; } @Column(name = "password_user", nullable = false, length = 25) public String getPasswordUser() { return this.passwordUser; } public void setPasswordUser(String passwordUser) { this.passwordUser = passwordUser; } }
Le controlleur
Le fichier de configuration d'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 public class UserController extends MultiActionController { private UserDAO userDAO; public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } public ModelAndView add(HttpServletRequest request, HttpServletResponse response, User user) throws Exception { userDAO.saveUser(user); return new ModelAndView("list.htm"); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/database</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> </session-factory> </hibernate-configuration>
la Servlet
maintenant, j'arrive à compiler le code sans aucune erreur affichée
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 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" > <property name="prefix"> <value>/WEB-INF/jsp/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property> <property name="annotatedClasses"> <list> <value>domain.User</value> </list> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="mySessionFactory"/> </bean> <bean id="transactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager"/> </property> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED, readOnly</prop> </props> </property> </bean> <bean id="myUserDAO" class="dao.UserDAOImpl"> <property name="sessionFactory" ref="mySessionFactory"/> </bean> <bean name="/user/*.htm" class="web.UserController" > <property name="userDAO" ref="myUserDAO" /> </bean> </beans>
j'arrive aussi à inserer un nouveau utilisateur au niveau du formulaire jsp sans aucune erreur !!
mais le problème mnt c'est que la table "user" reste toujours vide au niveau de la base de donnée !!
Est ce que qq'un peut m'aider à résoudre ce problème et Merci !!
Partager