我有SSH框架做了一个用户管理的程序,可是为什么不管是查询还是翻页,成功操作两次后就失效了呢?
这是我的UserinfoDAOImpl:public class UserInfoImpl extends HibernateDaoSupport implements UserinfoDAO {

public boolean login(UserInfo userinfo) throws Exception {
boolean flag=false;
String hql="from UserInfo as u where u.userName=? and u.password=?";
Query q=super.getSession().createQuery(hql);
q.setString(0, userinfo.getUserName());
q.setString(1,userinfo.getPassword());
List all=q.list();
if(all.size()>0)
{
flag=true;
userinfo.setRealName(((UserInfo)all.get(0)).getRealName());
}

return flag;
} public List QueryByLike(int likeid) throws Exception {

return null;
} public UserInfo QueryByUsername(String username) throws Exception {
UserInfo userinfo =new UserInfo();
String hql="from UserInfo as u where u.userName=?";
System.out.println(hql);
Query q=super.getSession().createQuery(hql);
q.setString(0, username);
System.out.println("page:"+ username);
List all=q.list();
if(all.size()>0)
{
userinfo=((UserInfo) all.get(0));
System.out.println("userinfoupsate"+all.get(0));
}

// TODO Auto-generated method stub
return userinfo;
} public List Queryall() throws Exception {
// TODO Auto-generated method stub
UserInfo userinfo=new UserInfo();
String hql="from UserInfo as u";
Query q=super.getSession().createQuery(hql);
List all=q.list();
if(all.size()>0)
{
   String realname=(String)((UserInfo)all.get(0)).getRealName();
   String username=(String)((UserInfo)all.get(0)).getUserName();
   int departmentid=(int)((UserInfo)all.get(0)).getDepartmentId();
   int roleid=(int)((UserInfo)all.get(0)).getRoleId();
   String company=(String)((UserInfo)all.get(0)).getCompany();
   String mphone=(String)((UserInfo)all.get(0)).getMphone();
   int usertype=(int)((UserInfo)all.get(0)).getUserType();
   
   userinfo.setRealName(realname);
   userinfo.setUserName(username);
   userinfo.setDepartmentId(departmentid);
   userinfo.setRoleId(roleid);
   userinfo.setCompany(company);
   userinfo.setMphone(mphone);
   userinfo.setUserType(usertype);
} return all;
}
public void insert(UserInfo userinfo) throws Exception {
System.out.println("----------------------------------------");
//super.getSession().save(userinfo);//此处用这个插入不能成功,原因不明
super.getHibernateTemplate().save(userinfo);
System.out.println(userinfo);
super.getSession().beginTransaction().commit();
}
}Action:
public class UserinfoAction extends DispatchAction {
private UserinfoDAO userinfodao;
private PageSplitDAO pagesplitdao;
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
UserinfoForm userinfoForm = (UserinfoForm) form;
String username=userinfoForm.getUsername();
String password=userinfoForm.getPassword(); 
UserInfo userinfo=new UserInfo();
userinfo.setUserName(username);
userinfo.setPassword(password);
    boolean flag=false;
    try
    {
     flag=this.userinfodao.login(userinfo);
    }
    catch(Exception e)
    {
     e.printStackTrace();
    }
    if(flag)
    {      
        request.getSession().setAttribute("uname",userinfo.getUserName());
        System.out.println(userinfo.getUserName());
        request.setAttribute("loginbean",userinfo);
       return mapping.findForward("success");
    }
    else
    {    
     request.setAttribute("error", "用户名或密码错误!请重新登录");
      return mapping.findForward("fail");
    }

}


public ActionForward selectall(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserinfoForm userinfoForm = (UserinfoForm) form;
try
{
request.setAttribute("all", this.getUserinfodao().Queryall());
}
catch(Exception e)
{}
//分页
//
int lineSize = 10;
// ��ǰ�ǵ
int currentPage = 1;
// ȫ���ļ�¼��
int allRecorders = 0;
List all = null;
//PSCountDAO pdao =DAOFactory.getPSCountDAOInstance();
     
try {
currentPage = Integer.parseInt(request.getParameter("cp"));
} catch (Exception e) {
}
// ���ȫ���ļ�¼��
try {
allRecorders = pagesplitdao.getAllCount();

all =pagesplitdao.queryAll(currentPage, lineSize);
} catch (Exception e) {
e.printStackTrace();
}

// ����ݱ��浽ҳ���н�����ʾ
request.setAttribute("currentPage", new Integer(currentPage));
request.setAttribute("lineSize", new Integer(lineSize));
request.setAttribute("allRecorders", new Integer(allRecorders));

request.setAttribute("allps", all);

return mapping.findForward("list");
}

public ActionForward selectlike(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserinfoForm userForm = (UserinfoForm) form;
// ���ղ�ѯ�ؼ���
String keyWord = null;
// ÿҳ��ʾ10�м�¼
int lineSize = 10;
// ��ǰ�ǵڼ�ҳ
int currentPage = 1;
// ȫ���ļ�¼��
int allRecorders = 0;
// ȫ���ļ�¼��
List all = null; keyWord = request.getParameter("kw");
// ÿ����Ҫ����currentPage --> cp
try {
currentPage = Integer.parseInt(request.getParameter("cp"));
} catch (Exception e) {
}
// ���ȫ���ļ�¼��
try {
allRecorders = this.pagesplitdao.getByLikeCount(keyWord);
all = this.pagesplitdao.queryByLike(keyWord, currentPage, lineSize);
} catch (Exception e) {
e.printStackTrace();
} // ����ݱ��浽ҳ���н�����ʾ
request.setAttribute("currentPage", new Integer(currentPage));
request.setAttribute("lineSize", new Integer(lineSize));
request.setAttribute("allRecorders", new Integer(allRecorders));
request.setAttribute("all", all);

return mapping.findForward("list");
}
public ActionForward insert(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserinfoForm userform=(UserinfoForm) form;
UserInfo userinfo =new UserInfo();
userinfo.setInfoId(userform.getInfoid());
userinfo.setUserName(userform.getUsername());
userinfo.setPassword(userform.getPassword());
userinfo.setRealName(userform.getRealname());
userinfo.setDepartmentId(userform.getDepartmentid());
userinfo.setRoleId(userform.getRoleid());
userinfo.setAddress(userform.getAddress());
userinfo.setMphone(userform.getMphone());
userinfo.setCompany(userform.getCompany());
boolean flag=false;

try{
this.userinfodao.insert(userinfo);
flag=true;
}
catch(Exception e)
{
e.printStackTrace();
}
request.setAttribute("flag", new Boolean(flag));
return mapping.findForward("insertdo");
} public UserinfoDAO getUserinfodao() {
return userinfodao;
}
public void setUserinfodao(UserinfoDAO userinfodao) {
this.userinfodao = userinfodao;
}
public PageSplitDAO getPagesplitdao() {
return pagesplitdao;
} public void setPagesplitdao(PageSplitDAO pagesplitdao) {
this.pagesplitdao = pagesplitdao;
}}
大家帮看看是什么问题啊

解决方案 »

  1.   

    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="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
    value="com.mysql.jdbc.Driver">
    </property>
    <property name="url"
    value="jdbc:mysql://localhost:3306/manage_console">
    </property>
    <property name="username" value="root"></property>
    <property name="password" value="666666"></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>cn/telmedia/csma/pojo/UserInfo.hbm.xml</value></list>
    </property></bean>

    <bean id="hibernateTemplate"
    class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>

    <bean id="UserinfoDAO" 
       class="cn.telmedia.csma.userinfo.dao.UserinfoDAO"
       abstract="true">
    </bean>
    <bean id="UserInfoImpl"
       class="cn.telmedia.csma.userinfo.dao.UserInfoImpl" parent="UserinfoDAO">
       <property name="hibernateTemplate">
         <ref bean="hibernateTemplate" />
       </property>
       </bean>
       <bean id="PageSplitDAO" 
       class="cn.telmedia.csma.pagesplit.dao.PageSplitDAO"
       abstract="true">
    </bean>
       <bean id="PageSplitImpl"
       class="cn.telmedia.csma.pagesplit.dao.PageSplitImpl" parent="PageSplitDAO">
        <property name="hibernateTemplate">
         <ref bean="hibernateTemplate"/>
        </property>
       </bean>
        <bean name="/user" class="cn.telmedia.csma.userinfo.action.UserinfoAction">
         <property name="userinfodao">
         <ref bean="UserInfoImpl"/>
         </property>
         <property name="pagesplitdao">
         <ref bean="PageSplitImpl"/>
         </property>
        </bean>
    </beans>
      

  2.   

    没有错误啊,有了还好点啊:
    2009-4-8 10:49:44 org.apache.catalina.core.AprLifecycleListener init
    信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.5.0_13\bin;E:\apache-tomcat-6.0.14\bin
    2009-4-8 10:49:45 org.apache.coyote.http11.Http11Protocol init
    信息: Initializing Coyote HTTP/1.1 on http-8088
    2009-4-8 10:49:45 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 2109 ms
    2009-4-8 10:49:45 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2009-4-8 10:49:45 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/6.0.14
    2009-4-8 10:49:45 org.apache.catalina.startup.HostConfig deployWAR
    信息: Deploying web application archive axis2.war
    [INFO] Deploying module: addressing - file:/E:/apache-tomcat-6.0.14/webapps/axis2/WEB-INF/modules/addressing-1.4.1.mar
    [INFO] Deploying module: script-1.41 - file:/E:/apache-tomcat-6.0.14/webapps/axis2/WEB-INF/modules/axis2-scripting-1.41.mar
    [INFO] Deploying module: metadataExchange-1.41 - file:/E:/apache-tomcat-6.0.14/webapps/axis2/WEB-INF/modules/mex-1.41.mar
    [INFO] Deploying module: soapmonitor-1.41 - file:/E:/apache-tomcat-6.0.14/webapps/axis2/WEB-INF/modules/soapmonitor-1.41.mar
    [INFO] Deploying module: ping-1.41 - file:/E:/apache-tomcat-6.0.14/webapps/axis2/WEB-INF/modules/ping-1.41.mar
    [INFO] Deploying Web service: version-1.4.1.aar - file:/E:/apache-tomcat-6.0.14/webapps/axis2/WEB-INF/services/version-1.4.1.aar
    2009-4-8 10:49:54 org.apache.catalina.core.ApplicationContext log
    信息: ContextListener: contextInitialized()
    2009-4-8 10:49:54 org.apache.catalina.core.ApplicationContext log
    信息: SessionListener: contextInitialized()
    log4j:WARN No appenders could be found for logger (org.apache.struts.util.PropertyMessageResources).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN No appenders could be found for logger (org.apache.struts.util.PropertyMessageResources).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN No appenders could be found for logger (org.apache.struts.util.PropertyMessageResources).
    log4j:WARN Please initialize the log4j system properly.
    2009-4-8 10:50:12 org.apache.catalina.core.ApplicationContext log
    信息: Initializing Spring root WebApplicationContext
    2009-4-8 10:50:18 org.apache.coyote.http11.Http11Protocol start
    信息: Starting Coyote HTTP/1.1 on http-8088
    2009-4-8 10:50:18 org.apache.jk.common.ChannelSocket init
    信息: JK: ajp13 listening on /0.0.0.0:8009
    2009-4-8 10:50:18 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=0/47  config=null
    2009-4-8 10:50:18 org.apache.catalina.startup.Catalina start
    信息: Server startup in 33192 ms
      

  3.   

    [code=我有SSH框架做了一个用户管理的程序,可是为什么不管是查询还是翻页,成功操作两次后就失效了呢? 
    这是我的UserinfoDAOImpl: public class UserInfoImpl extends HibernateDaoSupport implements UserinfoDAO { public boolean login(UserInfo userinfo) throws Exception { 
    boolean flag=false; 
    String hql="from UserInfo as u where u.userName=? and u.password=?"; 
    Query q=super.getSession().createQuery(hql); 
    q.setString(0, userinfo.getUserName()); 
    q.setString(1,userinfo.getPassword()); 
    List all=q.list(); 
    if(all.size()>0) 

    flag=true; 
    userinfo.setRealName(((UserInfo)all.get(0)).getRealName()); 
    } return flag; 
    } public List QueryByLike(int likeid) throws Exception { return null; 
    } public UserInfo QueryByUsername(String username) throws Exception { 
    UserInfo userinfo =new UserInfo(); 
    String hql="from UserInfo as u where u.userName=?"; 
    System.out.println(hql); 
    Query q=super.getSession().createQuery(hql); 
    q.setString(0, username); 
    System.out.println("page:"+ username); 
    List all=q.list(); 
    if(all.size()>0) 

    userinfo=((UserInfo) all.get(0)); 
    System.out.println("userinfoupsate"+all.get(0)); 
    } // TODO Auto-generated method stub 
    return userinfo; 
    } public List Queryall() throws Exception { 
    // TODO Auto-generated method stub 
    UserInfo userinfo=new UserInfo(); 
    String hql="from UserInfo as u"; 
    Query q=super.getSession().createQuery(hql); 
    List all=q.list(); 
    if(all.size()>0) 

      String realname=(String)((UserInfo)all.get(0)).getRealName(); 
      String username=(String)((UserInfo)all.get(0)).getUserName(); 
      int departmentid=(int)((UserInfo)all.get(0)).getDepartmentId(); 
      int roleid=(int)((UserInfo)all.get(0)).getRoleId(); 
      String company=(String)((UserInfo)all.get(0)).getCompany(); 
      String mphone=(String)((UserInfo)all.get(0)).getMphone(); 
      int usertype=(int)((UserInfo)all.get(0)).getUserType(); 
      
      userinfo.setRealName(realname); 
      userinfo.setUserName(username); 
      userinfo.setDepartmentId(departmentid); 
      userinfo.setRoleId(roleid); 
      userinfo.setCompany(company); 
      userinfo.setMphone(mphone); 
      userinfo.setUserType(usertype); 
    } return all; 

    public void insert(UserInfo userinfo) throws Exception { 
    System.out.println("----------------------------------------"); 
    //super.getSession().save(userinfo);//此处用这个插入不能成功,原因不明 
    super.getHibernateTemplate().save(userinfo); 
    System.out.println(userinfo); 
    super.getSession().beginTransaction().commit(); 

    } Action: 
    public class UserinfoAction extends DispatchAction { 
    private UserinfoDAO userinfodao; 
    private PageSplitDAO pagesplitdao; 
    public ActionForward login(ActionMapping mapping, ActionForm form, 
    HttpServletRequest request, HttpServletResponse response) throws Exception { 
    UserinfoForm userinfoForm = (UserinfoForm) form; 
    String username=userinfoForm.getUsername(); 
    String password=userinfoForm.getPassword(); 
    UserInfo userinfo=new UserInfo(); 
    userinfo.setUserName(username); 
    userinfo.setPassword(password); 
        boolean flag=false; 
        try 
        { 
        flag=this.userinfodao.login(userinfo); 
        } 
        catch(Exception e) 
        { 
        e.printStackTrace(); 
        } 
        if(flag) 
        {      
            request.getSession().setAttribute("uname",userinfo.getUserName()); 
            System.out.println(userinfo.getUserName()); 
            request.setAttribute("loginbean",userinfo); 
          return mapping.findForward("success"); 
        } 
        else 
        {    
        request.setAttribute("error", "用户名或密码错误!请重新登录"); 
          return mapping.findForward("fail"); 
        } } 
    public ActionForward selectall(ActionMapping mapping, ActionForm form, 
    HttpServletRequest request, HttpServletResponse response) 
    throws Exception { 
    UserinfoForm userinfoForm = (UserinfoForm) form; 
    try 

    request.setAttribute("all", this.getUserinfodao().Queryall()); 

    catch(Exception e) 
    {} 
    //分页 
    // 
    int lineSize = 10; 
    // ��ǰ�ǵ 
    int currentPage = 1; 
    // ȫ���ļ�¼�� 
    int allRecorders = 0; 
    List all = null; 
    //PSCountDAO pdao =DAOFactory.getPSCountDAOInstance(); 
        
    try { 
    currentPage = Integer.parseInt(request.getParameter("cp")); 
    } catch (Exception e) { 

    // ���ȫ���ļ�¼�� 
    try { 
    allRecorders = pagesplitdao.getAllCount(); all =pagesplitdao.queryAll(currentPage, lineSize); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    } // ����ݱ��浽ҳ���н�����ʾ 
    request.setAttribute("currentPage", new Integer(currentPage)); 
    request.setAttribute("lineSize", new Integer(lineSize)); 
    request.setAttribute("allRecorders", new Integer(allRecorders)); request.setAttribute("allps", all); return mapping.findForward("list"); 
    } public ActionForward selectlike(ActionMapping mapping, ActionForm form, 
    HttpServletRequest request, HttpServletResponse response) 
    throws Exception { 
    UserinfoForm userForm = (UserinfoForm) form; 
    // ���ղ�ѯ�ؼ��� 
    String keyWord = null; 
    // ÿҳ��ʾ10�м�¼ 
    int lineSize = 10; 
    // ��ǰ�ǵڼ�ҳ 
    int currentPage = 1; 
    // ȫ���ļ�¼�� 
    int allRecorders = 0; 
    // ȫ���ļ�¼�� 
    List all = null; keyWord = request.getParameter("kw"); 
    // ÿ����Ҫ����currentPage --> cp 
    try { 
    currentPage = Integer.parseInt(request.getParameter("cp")); 
    } catch (Exception e) { 

    // ���ȫ���ļ�¼�� 
    try { 
    allRecorders = this.pagesplitdao.getByLikeCount(keyWord); 
    all = this.pagesplitdao.queryByLike(keyWord, currentPage, lineSize); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    } // ����ݱ��浽ҳ���н�����ʾ 
    request.setAttribute("currentPage", new Integer(currentPage)); 
    request.setAttribute("lineSize", new Integer(lineSize)); 
    request.setAttribute("allRecorders", new Integer(allRecorders)); 
    request.setAttribute("all", all); return mapping.findForward("list"); 

    public ActionForward insert(ActionMapping mapping, ActionForm form, 
    HttpServletRequest request, HttpServletResponse response) 
    throws Exception { 
    UserinfoForm userform=(UserinfoForm) form; 
    UserInfo userinfo =new UserInfo(); 
    userinfo.setInfoId(userform.getInfoid()); 
    userinfo.setUserName(userform.getUsername()); 
    userinfo.setPassword(userform.getPassword()); 
    userinfo.setRealName(userform.getRealname()); 
    userinfo.setDepartmentId(userform.getDepartmentid()); 
    userinfo.setRoleId(userform.getRoleid()); 
    userinfo.setAddress(userform.getAddress()); 
    userinfo.setMphone(userform.getMphone()); 
    userinfo.setCompany(userform.getCompany()); 
    boolean flag=false; try{ 
    this.userinfodao.insert(userinfo); 
    flag=true; 

    catch(Exception e) 

    e.printStackTrace(); 

    request.setAttribute("flag", new Boolean(flag)); 
    return mapping.findForward("insertdo"); 
    } public UserinfoDAO getUserinfodao() { 
    return userinfodao; 

    public void setUserinfodao(UserinfoDAO userinfodao) { 
    this.userinfodao = userinfodao; 

    public PageSplitDAO getPagesplitdao() { 
    return pagesplitdao; 
    } public void setPagesplitdao(PageSplitDAO pagesplitdao) { 
    this.pagesplitdao = pagesplitdao; 
    } } 
    大家帮看看是什么问题啊 
    ][/code]
      

  4.   

    public List Queryall() throws Exception { 
    // TODO Auto-generated method stub 
    UserInfo userinfo=new UserInfo(); 
    String hql="from UserInfo as u"; 
    Query q=super.getSession().createQuery(hql); 
    List all=q.list(); 
    if(all.size()>0) 

      String realname=(String)((UserInfo)all.get(0)).getRealName(); 
      String username=(String)((UserInfo)all.get(0)).getUserName(); 
      int departmentid=(int)((UserInfo)all.get(0)).getDepartmentId(); 
      int roleid=(int)((UserInfo)all.get(0)).getRoleId(); 
      String company=(String)((UserInfo)all.get(0)).getCompany(); 
      String mphone=(String)((UserInfo)all.get(0)).getMphone(); 
      int usertype=(int)((UserInfo)all.get(0)).getUserType(); 
      
      userinfo.setRealName(realname); 
      userinfo.setUserName(username); 
      userinfo.setDepartmentId(departmentid); 
      userinfo.setRoleId(roleid); 
      userinfo.setCompany(company); 
      userinfo.setMphone(mphone); 
      userinfo.setUserType(usertype); 
    } return all; 

    提一下,上面方法中的代码冗余以下两行中出现的方法给出来
    all = this.pagesplitdao.queryByLike(keyWord, currentPage, lineSize); 
    all =pagesplitdao.queryAll(currentPage, lineSize);