我个项目,每次在提交数据的时候,总是不能把数据提交到数据库中,但是后台却没有报错,而且前台也能正常显示,不知道是什么原因,我用的是SQL server 2000 下面是相关的代码。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-2.0.xsd">

<bean id="sessionfactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="LoginDAO" class="dao.LoginDAO">
<property name="sessionFactory">
<ref bean="sessionfactory" />
</property>
</bean>
<bean id="loginDAOservice" class="service.LoginDAOservice"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="dao">
<ref local="LoginDAO" />
</property>
</bean> <bean name="/insert" class="org.tie.struts.action.InsertAction"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="service">
<ref local="loginDAOservice" />
</property>
</bean>


</beans>
insertAction.java/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package org.tie.struts.action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.tie.struts.form.InsertForm;import dao.Login;import service.Ilogindaoservice;
public class InsertAction extends Action {
private Ilogindaoservice service;

public Ilogindaoservice getService() {
return service;
} public void setService(Ilogindaoservice service) {
this.service = service;
}

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
InsertForm insertForm = (InsertForm) form;
Login users=new Login();  
String username=insertForm.getDdd();
String password=insertForm.getSss();
users.setUsername(username);
users.setPassword(password);
request.setAttribute("users",service); return mapping.findForward("su"); }

}LoginDAOservice.java
package service;import java.util.List;
import dao.IloginDAO;
import dao.Login;
import dao.LoginDAO;public class LoginDAOservice implements Ilogindaoservice{
private IloginDAO dao; public IloginDAO getDao() {
return dao;
} public void setDao(IloginDAO dao) {


this.dao = dao;
if (dao==null)
{System.out.println("dao为空");
} } public void delete(Login users) {
dao.delete(users);

} public Login getid(Integer id) { Login user= dao.findById(id);
return user ;
} public void save(Login users) {
dao.save(users);

} public List select() {
List userlist=dao.findAll();
return userlist;
} public void update(Login users) {
dao.save(users);

}}在DAO层中dao类继承的是 HibernateDaoSupport,小弟很着急,请各位多多帮忙了,谢谢!

解决方案 »

  1.   

    前提是你的hibernate.cfg.xml中没有设置hibernate.connection.autocommit=false那样的话要加上事务,然后commit
      

  2.   

    public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response) {
            InsertForm insertForm = (InsertForm) form;
            Login users=new Login();  
            String username=insertForm.getDdd();
            String password=insertForm.getSss();
        users.setUsername(username);
        users.setPassword(password);
        
    //这里调用插入方法了吗? service.save(user)好像没有调用吧?
        request.setAttribute("users",service);        return mapping.findForward("su");    }
      

  3.   

    hibernate.connection.autocommit=true
    或者上事务处理
      

  4.   

    下面是hibernate.cfg.xml,应该把hibernate.connection.autocommit=true 加到那里<?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"><!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration> <session-factory>
    <property name="dialect">
    org.hibernate.dialect.SQLServerDialect
    </property>
    <property name="connection.url">
    jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=web
    </property>
    <property name="connection.username">sa</property>
    <property name="connection.password">123</property>
    <property name="connection.driver_class">
    com.microsoft.jdbc.sqlserver.SQLServerDriver
    </property>
    <property name="myeclipse.connection.profile">
    conn-mssql
    </property>
    <mapping resource="dao/Login.hbm.xml" />
    </session-factory></hibernate-configuration>