Spring - Hibernate Integration
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
Code:
1 2 3 4 5 6
| public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
@Override
public void saveUser(User user) {
getHibernateTemplate().saveOrUpdate(user);
}
} |
la classe User
Code:
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
Code:
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");
}
} |
Le fichier de configuration d'Hibernate
Code:
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
Code:
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> |
maintenant, j'arrive à compiler le code sans aucune erreur affichée
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 !!