package com.guidepost.bgdao.impl;import java.util.List;import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.guidepost.bgdao.DBAdminsDAO;import exception.InValidateAdminException;public class DBAdminsDAOImpl extends HibernateDaoSupport implements DBAdminsDAO {
private List adminList;
public boolean findAdmin(String userName, String userPassword)throws InValidateAdminException {
// TODO Auto-generated method stub
boolean valide=false;
String sql=" from admins ";
adminList=getHibernateTemplate().find(sql);
System.out.println(adminList.get(0).getClass().getName());
if(adminList.size()>0){
valide=true;
return valide;
}
else{
throw new InValidateAdminException("非法登录");
}
}
}
通过测试会报错:java.lang.NullPointerException
at com.guidepost.bgdao.impl.DBAdminsDAOImpl.findAdmin(DBAdminsDAOImpl.java:18)
at com.guidepost.bgdao.impl.DBAdminsDAOImplTest.testFindAdmin(DBAdminsDAOImplTest.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.guidepost.bgdao.DBAdminsDAO;import exception.InValidateAdminException;public class DBAdminsDAOImpl extends HibernateDaoSupport implements DBAdminsDAO {
private List adminList;
public boolean findAdmin(String userName, String userPassword)throws InValidateAdminException {
// TODO Auto-generated method stub
boolean valide=false;
String sql=" from admins ";
adminList=getHibernateTemplate().find(sql);
System.out.println(adminList.get(0).getClass().getName());
if(adminList.size()>0){
valide=true;
return valide;
}
else{
throw new InValidateAdminException("非法登录");
}
}
}
通过测试会报错:java.lang.NullPointerException
at com.guidepost.bgdao.impl.DBAdminsDAOImpl.findAdmin(DBAdminsDAOImpl.java:18)
at com.guidepost.bgdao.impl.DBAdminsDAOImplTest.testFindAdmin(DBAdminsDAOImplTest.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
http://topic.csdn.net/u/20100109/22/b883bf30-53be-41ae-9ba6-0c88f5df84fe.html
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.5.xsd">
<bean id="datasource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" >
<value>java:comp/env/jdbc/myssh</value>
</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>
<prop key="show_sql">true</prop>
<prop key="hibernate.connection.autocommit">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>
com/china/guidepost/entity/Student.hbm.xml
</value>
<value>
com/china/guidepost/entity/Rolesaction.hbm.xml
</value>
<value>
com/china/guidepost/entity/Vipstudent.hbm.xml
</value>
<value>
com/china/guidepost/entity/Stuteac.hbm.xml
</value>
<value>
com/china/guidepost/entity/Clasubject.hbm.xml
</value>
<value>com/china/guidepost/entity/Roles.hbm.xml</value>
<value>com/china/guidepost/entity/Action.hbm.xml</value>
<value>
com/china/guidepost/entity/Studclass.hbm.xml
</value>
<value>
com/china/guidepost/entity/Leaveapp.hbm.xml
</value>
<value>com/china/guidepost/entity/Module.hbm.xml</value>
<value>
com/china/guidepost/entity/Absenteeism.hbm.xml
</value>
<value>
com/china/guidepost/entity/Teacher.hbm.xml
</value>
<value>
com/china/guidepost/entity/Teacherreplace.hbm.xml
</value>
<value>
com/china/guidepost/entity/Vipteac.hbm.xml
</value>
<value>
com/china/guidepost/entity/Teacsub.hbm.xml
</value>
<value>
com/china/guidepost/entity/Vipstuclass.hbm.xml
</value>
<value>
com/china/guidepost/entity/Subject.hbm.xml
</value>
<value>com/china/guidepost/entity/Admins.hbm.xml</value>
<value>
com/china/guidepost/entity/Rolesmodule.hbm.xml
</value>
<value>
com/china/guidepost/entity/Studentclass.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="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<bean id="StudentDAO"
class="com.china.guidepost.entity.StudentDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="RolesactionDAO"
class="com.china.guidepost.entity.RolesactionDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="VipstudentDAO"
class="com.china.guidepost.entity.VipstudentDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="StuteacDAO"
class="com.china.guidepost.entity.StuteacDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="ClasubjectDAO"
class="com.china.guidepost.entity.ClasubjectDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="RolesDAO" class="com.china.guidepost.entity.RolesDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="ActionDAO" class="com.china.guidepost.entity.ActionDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="StudclassDAO"
class="com.china.guidepost.entity.StudclassDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="LeaveappDAO"
class="com.china.guidepost.entity.LeaveappDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="ModuleDAO" class="com.china.guidepost.entity.ModuleDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="AbsenteeismDAO"
class="com.china.guidepost.entity.AbsenteeismDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="TeacherDAO"
class="com.china.guidepost.entity.TeacherDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="TeacherreplaceDAO"
class="com.china.guidepost.entity.TeacherreplaceDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="VipteacDAO"
class="com.china.guidepost.entity.VipteacDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="TeacsubDAO"
class="com.china.guidepost.entity.TeacsubDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="VipstuclassDAO"
class="com.china.guidepost.entity.VipstuclassDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="SubjectDAO"
class="com.china.guidepost.entity.SubjectDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<!-- 后台的dao,真正的实现了verify方法来验证前台管理员是否存在 *3-->
<bean id="DBAdminsDAO" class="com.guidepost.bgdao.impl.DBAdminsDAOImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 中间层的dao,封装了验证前台、系统管理员的方法,调用了后台的dao *2-->
<bean id="AdminsDAO" class="com.guidepost.middledao.impl.AdminsDAOImpl">
<property name="dba">
<ref bean="DBAdminsDAO"/>
</property>
</bean>
<!-- spring管理前台管理员登陆的action,应用中间层的dao *1 -->
<bean name="/prelogin" class="com.guidepost.struts.action.PreLoginAction">
<property name="adminsDAO">
<ref bean="AdminsDAO"/>
</property>
</bean>
<!-- spring管理系统管理员登陆的action,应用中间层的dao -->
<bean name="/syslogin" class="com.guidepost.struts.action.SysLoginAction">
<property name="adminsDAO">
<ref bean="AdminsDAO"/>
</property>
</bean>
<bean id="RolesmoduleDAO"
class="com.china.guidepost.entity.RolesmoduleDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="StudentclassDAO"
class="com.china.guidepost.entity.StudentclassDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean></beans>
上面是我的xml,datasource的配置正确吗?