首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

使用HibernateTemplate无法将是实体类持久化到数据库解决方法

2012-06-14 
使用HibernateTemplate无法将是实体类持久化到数据库练习SSH,但程序好像执行都UserDao的hibernateTemplate

使用HibernateTemplate无法将是实体类持久化到数据库
练习SSH,但程序好像执行都UserDao的hibernateTemplate.save(u)的上一句就不执行了,请高手指点……
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/photosystem">
</property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<!-- <value>com.sun.java.entity/Photo.hbm.xml</value>
<value>com.sun.java.entity/Photoword.hbm.xml</value>
<value>com.sun.java.entity/Kind.hbm.xml</value> -->
<value>com/sun/java/entity/User.hbm.xml</value>
<!-- <value>com.sun.java.entity/Album.hbm.xml</value> -->
</list>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
 
<bean id="userDao" class="com.sun.java.dao.UserDao">
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>
<bean id="userService" class="com.sun.java.service.UserService">
<property name="userDao" ref="userDao"></property>
</bean>
 
<bean id="register" class="com.sun.java.action.UserAction">
<property name="userService" ref="userService"></property>
</bean>

</beans>

UserAction:
package com.sun.java.action;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.opensymphony.xwork2.ActionSupport;
import com.sun.java.entity.User;
import com.sun.java.service.UserService;

public class UserAction extends ActionSupport{
private static Log log = LogFactory.getLog(UserAction.class);
private UserService userService;
private String username;
private String password;
private String password2;

public String register(){

if(password.equals(password2) && username != null) {
log.info("开始注册");
User u = new User();
u.setUsername(username);
u.setPassword(password);
u.getPassword();
userService.add(u);
return "registerSuccess";
}
return ERROR;

}

public UserService getUserService() {
return userService;
}



public void setUserService(UserService userService) {
this.userService = userService;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getPassword2() {
return password2;
}

public void setPassword2(String password2) {
this.password2 = password2;
}
}

UserService:
package com.sun.java.service;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.sun.java.dao.UserDao;
import com.sun.java.entity.User;

public class UserService {
private static Log log = LogFactory.getLog(UserService.class);
private UserDao userDao;

public void add(User u) {
log.info("service中添加用户");
userDao.save(u);

}

public UserDao getUserDao() {
return userDao;
}

public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}

UserDao:
package com.sun.java.dao;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;

import com.sun.java.entity.User;

public class UserDao {
private static Log log = LogFactory.getLog(UserDao.class);
private HibernateTemplate hibernateTemplate;

public void save(User u) {
log.info("保存用户");
hibernateTemplate.save(u);
log.info("注册成功!");
}

public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}

public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
}


[解决办法]
如果不报错,那可能是事务没提交,你添加一个声明式事务试试。。
[解决办法]
你这应该是配置问题,楼上说的不错,你spring没加事务呀,如果还是不行,那你得看看其它的配置了

热点排行