在做一个关于struts2+spring+hibernate3.x项目搭建环境测试过程中,写一个主函数测试hibernate的查询和存储,出现
java.lang.NullPointerException ,上网找了好多信息,也没有解决问题,贴出来,哪个好心人帮助看一下!public class UsersDAOImpl extends BaseDAOImpl implements IUsersDAO { public Users findUserByNameAndPass(String name, String pass) {
System.out.println("程序执行到此...UserDAOImpl...findUserByName"+name+"..."+pass); //String sql = "from Users s where s.username=? and s.userpassword=?";
List ul = getHibernateTemplate().find("from Users s where s.username="+name+"s.userpassword="+pass,new String[]{name,pass}); if(ul!=null && ul.size()>=1){
return (Users)ul.get(0);
}
return null;
}
}
========================================================================测试的主函数:
public static void main(String[] args) {
// TODO Auto-generated method stub
//
// UserServiceImpl usi = new UserServiceImpl();
// try {
// usi.loginValid("admin", "123");
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
UsersDAOImpl udi = new UsersDAOImpl();
// //udi.findUserByNameAndPass("admin","123");
// //udi.getAllUser();
//
Users user = new Users();
user.setUsername("gaochc");
udi.saveObj(user);
}
========================================================================
报出的错误异常:Exception in thread "main" java.lang.NullPointerException
at net.gcc.pms.dao.impl.BaseDAOImpl.saveObj(BaseDAOImpl.java:27)
at net.gcc.pms.test.TestClass.main(TestClass.java:28)
========================================================================
<?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"
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.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <!-- 设置数据源对象 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
destroy-method="close">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@127.0.0.1:1521:oral</value>
</property>
<property name="username">
<value>gaochc</value>
</property>
<property name="password">
<value>19820415</value>
</property>
</bean>
<!-- 配置sessionFactory,注意这里引入的是hibernate3而不是hibernate -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>net/gcc/pms/vo/Users.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
</bean>
<!-- 配置事务管理器-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- 配置事务拦截器Bean -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean 需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<!-- 下面定义事务传播性 -->
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义BeanNamfeAutoProxyCreator 后处理器 -->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定对满足哪些bean name的bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的bean-->
<list>
<value>usi</value>
</list>
<!-- 此处可增加其他需要自动创建事务代理的bean-->
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<!-- 此处可增加其他新的Interceptor -->
<value>transactionInterceptor</value>
</list>
</property>
</bean>
<!-- 配置 DAO 类 -->
<bean id="usi" class="net.gcc.pms.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>
<bean id="userDAO" class="net.gcc.pms.dao.impl.UsersDAOImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- 配置 CompanyServiceImpl,将companyDAO 的值注入comDAO变量 -->
<!--
<bean id="companyServiceImpl" class="net.gcc.pms.service.impl.CompanyServiceImpl">
<property name="comDAO">
<ref local="companyDAO" />
</property>
</bean>
-->
</beans>spring 管理的配置文件 bean.xml
java.lang.NullPointerException ,上网找了好多信息,也没有解决问题,贴出来,哪个好心人帮助看一下!public class UsersDAOImpl extends BaseDAOImpl implements IUsersDAO { public Users findUserByNameAndPass(String name, String pass) {
System.out.println("程序执行到此...UserDAOImpl...findUserByName"+name+"..."+pass); //String sql = "from Users s where s.username=? and s.userpassword=?";
List ul = getHibernateTemplate().find("from Users s where s.username="+name+"s.userpassword="+pass,new String[]{name,pass}); if(ul!=null && ul.size()>=1){
return (Users)ul.get(0);
}
return null;
}
}
========================================================================测试的主函数:
public static void main(String[] args) {
// TODO Auto-generated method stub
//
// UserServiceImpl usi = new UserServiceImpl();
// try {
// usi.loginValid("admin", "123");
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
UsersDAOImpl udi = new UsersDAOImpl();
// //udi.findUserByNameAndPass("admin","123");
// //udi.getAllUser();
//
Users user = new Users();
user.setUsername("gaochc");
udi.saveObj(user);
}
========================================================================
报出的错误异常:Exception in thread "main" java.lang.NullPointerException
at net.gcc.pms.dao.impl.BaseDAOImpl.saveObj(BaseDAOImpl.java:27)
at net.gcc.pms.test.TestClass.main(TestClass.java:28)
========================================================================
<?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"
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.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <!-- 设置数据源对象 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
destroy-method="close">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@127.0.0.1:1521:oral</value>
</property>
<property name="username">
<value>gaochc</value>
</property>
<property name="password">
<value>19820415</value>
</property>
</bean>
<!-- 配置sessionFactory,注意这里引入的是hibernate3而不是hibernate -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>net/gcc/pms/vo/Users.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
</bean>
<!-- 配置事务管理器-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- 配置事务拦截器Bean -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean 需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<!-- 下面定义事务传播性 -->
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义BeanNamfeAutoProxyCreator 后处理器 -->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!-- 指定对满足哪些bean name的bean自动生成业务代理 -->
<property name="beanNames">
<!-- 下面是所有需要自动创建事务代理的bean-->
<list>
<value>usi</value>
</list>
<!-- 此处可增加其他需要自动创建事务代理的bean-->
</property>
<!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<!-- 此处可增加其他新的Interceptor -->
<value>transactionInterceptor</value>
</list>
</property>
</bean>
<!-- 配置 DAO 类 -->
<bean id="usi" class="net.gcc.pms.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>
<bean id="userDAO" class="net.gcc.pms.dao.impl.UsersDAOImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<!-- 配置 CompanyServiceImpl,将companyDAO 的值注入comDAO变量 -->
<!--
<bean id="companyServiceImpl" class="net.gcc.pms.service.impl.CompanyServiceImpl">
<property name="comDAO">
<ref local="companyDAO" />
</property>
</bean>
-->
</beans>spring 管理的配置文件 bean.xml
解决方案 »
- 关于lucene 问题 懂的大神们进
- hibernate启动时候出现的几个问题,请大家帮帮忙
- 谁用过TreeTable,介绍几个
- java反射模仿实现struts1的一点功能
- Spring+hibernate 自己写一个Dao怎么实现?
- 求救!!!各位学长请帮帮我,hibernate 问题
- 代码问题,求救!!!!做毕业设计的
- 今天把struts hibernate分页做出来了大家看一下
- 100分!求oracle clob在Hibernate中修改
- [WEBLOGIC8.1]如何用命令重新启动一个WEB项目
- 晚上写的EJB中的怪问题
- WebLogic 702 使用Ant执行ClientGenTask遇到java.lang.ExceptionInInitializerError
<!-- 配置 DAO 类 -->
<bean id="usi" class="net.gcc.pms.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO"> </property>
</bean>
<bean id="userDAO" class="net.gcc.pms.dao.impl.UsersDAOImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean> main()中的dao要是你自己NEW()出来的就不受spring的管理了,没有注入依赖关系,所以空指针
<!-- 配置 DAO 类 -->
<bean id="usi" class="net.gcc.pms.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO"> </property>
</bean>
<bean id="userDAO" class="net.gcc.pms.dao.impl.UsersDAOImpl">
<property name="sessionFactory">
<!--
<ref local="sessionFactory" />
-->
<ref bean="sessionFactory"/>
</property>
</bean>