applicationContent.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:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="DataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>oracle.jdbc.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@localhost:1521:orcl</value>
</property>
<property name="username">
<value>scott</value>
</property>
<property name="password">
<value>tiger</value>
</property>
</bean>
<bean id="Factory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="DataSource" />
<property name="mappingResources">
<list>
<value>com/soft/entity/Student.hbm.xml</value>
<value>com/soft/entity/Teacher.hbm.xml</value>
<value>com/soft/entity/Manager.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="current_session_context_class">thread</prop>
</props>
</property>
</bean><bean id = "dao" class="com.soft.dao.UserManagerDAO">
<property name="factory" ref="Factory"></property>
</bean><bean id="loginimp" class="com.soft.biz.implement.loginImp">
<property name="userDAO" ref="dao"></property>
</bean><bean id="action" class="com.soft.action.Action_login">
<property name="login" ref="loginimp"></property>
</bean></beans>
----------------------------------------------
com.soft.ation.Action_login.java
package com.soft.action;import com.opensymphony.xwork2.ActionSupport;
import com.soft.biz.implement.loginImp;
import com.soft.entity.Manager;
import com.soft.entity.Student;
import com.soft.entity.Teacher;public class Action_login extends ActionSupport{
private String status;
private loginImp login;// = new loginImp(); //依赖spring注入
private String usernmae;
private String password;public String getUsernmae() {
return usernmae;
}public void setUsernmae(String usernmae) {
this.usernmae = usernmae;
}public String getPassword() {
return password;
}public void setPassword(String password) {
this.password = password;
}public loginImp getLogin() {
return login;
}public void setLogin(loginImp login) {
this.login = login;
}public String getStatus() {
return status;
}public void setStatus(String status) {
this.status = status;
}public String login()
{
System.out.println(getStatus());
if(getStatus().equals("1"))
{
if(login.Studentlogon(this.getUsernmae(),this.getPassword()))
{
return "StudentSuccess";
}else
return "error";}
else if(getStatus().equals("2"))
{
if(login.Teacherlogon(this.getUsernmae(),this.getPassword()))
{
return "TeacherSuccess";
}else
return "error";}
else if(getStatus().equals("3"))
{
if(login.Managerlogon(this.getUsernmae(),this.getPassword()))
{
return "ManagerSuccess";
}else
return "error";
}
else{
return "error";
}
}}
---------------------------------------------
loginImp.java
com.soft.biz.implement
package com.soft.biz.implement;
import com.soft.biz.login;
import com.soft.dao.UserManagerDAO;
import com.soft.entity.Manager;
import com.soft.entity.Student;
import com.soft.entity.Teacher;public class loginImp implements login {
private UserManagerDAO userDAO;// = new UserManagerDAO();;public UserManagerDAO getUserDAO() {
return userDAO;
}public void setUserDAO(UserManagerDAO userDAO) {
this.userDAO = userDAO;
}public boolean Managerlogon(String username,String password) {if(userDAO.loginManager(username, password))
{
return true;
}
else return false;
}public boolean Studentlogon(String username,String password) {if(userDAO.loginStudent(username, password))
{
return true;
}else
return false;
}public boolean Teacherlogon(String username,String password) {if(userDAO.loginTeacher(username, password))
{
return true;
}else
return false;
}}-------------------------
userManagerDAO.java
package com.soft.dao;import java.util.List;import org.hibernate.Session;
import org.hibernate.SessionFactory;public class UserManagerDAO {private SessionFactory factory;// = HibernateUtil.getSessionFactory();public SessionFactory getFactory() {
return factory;
}public void setFactory(SessionFactory factory) {
this.factory = factory;
}
public boolean loginStudent(String username,String password) {
Session session = factory.getCurrentSession();
session.beginTransaction();
List<String> list = session.createQuery("from Student where PMIID = ? and password = ?")
.setString(0, username).setString(1, password).list();
session.getTransaction().commit();
if(list.size()!=0)
{
return true;
}
else return false;
}public boolean loginTeacher(String username,String password) {
Session session = factory.getCurrentSession();
session.beginTransaction();
List<String> list = session.createQuery("from Teacher where username = ? and password = ?")
.setString(0, username).setString(1, password).list();
session.getTransaction().commit();
if(list.size()!=0)
{
return true;
}
else return false;
}public boolean loginManager(String username,String password) {
Session session = factory.getCurrentSession();
session.beginTransaction();
List<String> list = session.createQuery("from Manager where username = ? and password = ?")
.setString(0, username).setString(1, password).list();
session.getTransaction().commit();
if(list.size()!=0)
{
return true;
}
else return false;
}
}

解决方案 »

  1.   

    org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
    org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63)
    org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:687)
    com.soft.dao.UserManagerDAO.loginStudent(UserManagerDAO.java:26)
    com.soft.biz.implement.loginImp.Studentlogon(loginImp.java:31)
    com.soft.action.Action_login.login(Action_login.java:52)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
    org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
      

  2.   

    <bean id="myHibTransactionManager"  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
           <property name="sessionFactory" ref="Factory"></property>
        </bean>在网上找资料说,少了这个,后来加了还是无效
      

  3.   

    http://blog.csdn.net/cai5/article/details/6565523你有时间看看 ,是可以的
      

  4.   

    你主要看配置文件 ,类就别看啦 ,没什么好看的 ,applicationContent.xml
      

  5.   

     applicationContent.xml 有问题吗?
      

  6.   

    在hibernate properties节点下加上:
    <prop key="hibernate.current_session_context_class">thread</prop> 
      

  7.   


    注释掉 <prop key="current_session_context_class">thread</prop>
      

  8.   

     应该不是这个问题,后来DAO层继承了HibernateDaoSupport ,并且在entity层,加了空的构造方法,问题就解决了,,谢谢你们