初学SSH框架整合的时候用HibernateTemplate.save()来存储数据能存储成功的。现在想用HibernateTemplate.delete()来删除数据,程序中运行没有错误,但是数据库中始终做出删除操作。
下面附上代码。请大神指教。
**************分割线**********************
JSP代码。
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>删除数据</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
    <form method="post" action="delete.action">
     用户名:<input type="text" name="username"><br>
     密码:<input type="password" name="password"><br>
     <input type="submit" value="删除"/>
    </form><br>
  </body>
</html>
**************分割线**********************
struts.xml代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd"><struts>
<package name="registration" extends="struts-default"> <action name="user" class="registration.action.UserAction"> <result name="success">/userChange.jsp</result>
<result name="fail">/registerFail.jsp</result> </action>

<action name="add" class="registration.add.UserAdd"> <result name="success">/registerSuccess.jsp</result> </action>

<action name="delete" class="registration.delete.UserDelete"> <result name="success">/registerSuccess.jsp</result>
<result name="fail">/registerFail.jsp</result> </action>
</package>
</struts>

**************分割线**********************
UserDelete.java代码
package registration.delete;
import javax.annotation.Resource;import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;import registration.model.User;
import registration.service.UserManager;import com.opensymphony.xwork2.ActionSupport;@Scope("prototype")
public class UserDelete extends ActionSupport {

private String username;
private String password;
private String password2;

private UserManager um;

public UserManager getUm() {
return um;
} @Resource(name="userManager")
public void setUm(UserManager um) {
this.um = um;
} @Override
public String execute() throws Exception {
User u = new User();
u.setUsername(username);
u.setPassword(password);
if(um.exists(u)) {
um.remove(u);
return "success";
}
return "fail";
} 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;
}

}
**************分割线**********************
User.java代码
package registration.model;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class User {
private int id;
private String username;
private String password;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}}
**************分割线**********************
UserManager
package registration.service;import registration.model.User;
public interface UserManager { public abstract boolean exists(User u) throws Exception; public abstract void add(User u) throws Exception;

public abstract void remove(User u) throws Exception;}
**************分割线**********************UserManagerImpl.java代码
package registration.service.impl;import javax.annotation.Resource;import org.springframework.stereotype.Component;import registration.dao.UserDao;
import registration.model.User;
import registration.service.UserManager;@Component("userManager")
public class UserManagerImpl implements UserManager {

private UserDao userDao;

public UserDao getUserDao() {
return userDao;
}
@Resource
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
} /* (non-Javadoc)
 * @see com.bjsxt.registration.service.impl.UserManager#exists(com.bjsxt.registration.model.User)
 */

//检测Username是否存在
public boolean exists(User u) throws Exception {
return userDao.checkUserExistsWithName(u.getUsername());

}

/* (non-Javadoc)
 * @see com.bjsxt.registration.service.impl.UserManager#add(com.bjsxt.registration.model.User)
 */
public void add(User u) throws Exception {
userDao.save(u);
}
public void remove(User u) throws Exception {
userDao.delete(u);
}
}
**************分割线**********************
UserDao.java代码
package registration.dao;import registration.model.User;public interface UserDao {
public void save(User u);
public void delete(User u);
public boolean checkUserExistsWithName(String username);  
}
**************分割线**********************
UserDaoImpl.java代码
package registration.dao.impl;import java.util.List;import javax.annotation.Resource;import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Component;import registration.dao.UserDao;
import registration.model.User;
@Component("UserDao")
public class UserDaoImpl implements UserDao { private HibernateTemplate hibernateTemplate; public void save(User u) {
hibernateTemplate.save(u);
}
public void delete(User u) {
hibernateTemplate.delete(u);
//System.out.print("abc");
} public boolean checkUserExistsWithName(String username) {
List<User> users = hibernateTemplate.find("from User u where u.username = '"+ username +"'");

if(users != null && users.size()>0){
return true;
}
return false;
}
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}}
**************分割线**********************
beans.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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx 
           http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<context:annotation-config />
<context:component-scan base-package="registration" /> <!-- 
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">


<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/spring" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean>
--> <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean> <bean id="dataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>


<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 
<property name="annotatedClasses">
<list>
<value>model.User</value>
<value>model.Log</value>
</list>
</property>
 -->
 <property name="packagesToScan">
<list>
<value>registration.model</value>

</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean> <aop:config>
<aop:pointcut id="bussinessService"
expression="execution(public * registration.service..*.*(..))" />
<aop:advisor pointcut-ref="bussinessService"
advice-ref="txAdvice" />
</aop:config> <tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="exists" read-only="true" />
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="remove*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
</beans
现在的添加和查询都能完成的。求大神指导为什么删除不了。打的很辛苦,求大神指导