我在做SSH项目时,hibernate,struts都交得spring管理,可是怎么在实现类中继承HibernateDaoSupport,但是无法获得session,spring配置文件如下:
<?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.microsoft.jdbc.sqlserver.SQLServerDriver">
</property>
<property name="url"
value="jdbc:microsoft:sqlserver://localhost:1433">
</property>
<property name="username" value="sa"> </property>
<property name="password" value="123456789zzh"> </property>
</bean>
<bean id="hibernateInterceptor"
class="org.springframework.orm.hibernate3.HibernateInterceptor">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</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.connection.autocommit">true </prop>
<!-- 显示sql语句 -->
<prop key="hibernate.show_sql">true </prop>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>zzh/mybbs/vo/User.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="userdao" class="zzh.mybbs.dao.UserDao" abstract="true">
</bean>
<bean id="userdaoimpl" class="zzh.mybbs.dao.impl.UserDaoImpl" parent="userdao">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate"/>
</property>
</bean>
<bean name="/jsp/user" class="zzh.mybbs.struts.action.UserAction">
<property name="userdao">
<ref bean="userdaoimpl"/>
</property>
</bean>
</beans>
实现类:package zzh.mybbs.dao.impl;
import org.hibernate.Query;
import org.jgroups.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import zzh.mybbs.dao.UserDao;
import zzh.mybbs.vo.User;
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
public void insert(User user) throws Exception {
super.getSession().save(user);
}
public User queryByUserid(String userid) throws Exception {
User user=null;
String hql="FROM User as u WHERE u.userid=?";
Query q=super.getSession().createQuery(hql);
q.setString(0, userid);
List all=(List) q.list();
if(all.size()>0)
{
user=(User)((java.util.List) all).get(0);
}
return user;
}
}
用这个类测试:package zzh.mybbs;
import java.util.Iterator;
import java.util.List;
import zzh.mybbs.dao.impl.UserDaoImpl;
import zzh.mybbs.vo.User;
public class test {
public static void main(String args[])
{ List all=null;
UserDaoImpl user=new UserDaoImpl();
try
{
all=(List)user.queryByUserid("11");
Iterator iter=all.iterator();
while(iter.hasNext())
{
User u=(User)iter.next();
System.out.print(u.getUserpwd());
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
出错:java.lang.NullPointerException
at org.springframework.orm.hibernate3.support.HibernateDaoSupport.getSession(HibernateDaoSupport.java:140)
at zzh.mybbs.dao.impl.UserDaoImpl.queryByUserid(UserDaoImpl.java:20)
at zzh.mybbs.test.main(test.java:15)
分享到:
相关推荐
SSH整合(其中dao用extends HibernateDaoSupport方式)总结【图解】
springboot2.0多数据源集成hibernate配置hibernateDaoSupport, dao层继承hibernateDaoSupport, 不使用jpa方式。
HibernateDaoSupport的使用
hibernateDaoSupport类的详解!
.相同点:在applicationConext.xml中 ... HibernateDaoSupport: 在impl中要调用的方法要getHibernateTemplate().delete(user); UserDaoHiberateImpl: 在impl中要调用的方法要hibernateTemplate.save(user);
HibernateDaoSupport详解 HibernateDaoSupport详解
HibernateDaoSupport 类的jar HibernateDao 的jar
NULL 博文链接:https://yizhilong28.iteye.com/blog/818989
Spring hibernate3. HibernateDaoSupport 源码
HibernateDaoSupport分页.txt
HibernateDaoSupport二次封装组件,快速统计和查询,修改,删除,并且对SQL语句的in,or,exitsts都有涉及
HibernateDaoSupport方法的解释,比较详细,对初学者很有帮助
hibernateTemplate和HibernateDaoSupport
HibernateDaoSupport与JdbcDaoSupport总结
NULL 博文链接:https://wxinpeng.iteye.com/blog/1162157
spring-boot 集成hibernate,使用druid数据库连接池,dao继承HibernateDaoSupport 的实现,
NULL 博文链接:https://godit.iteye.com/blog/1716651
编写DAO的时候尽量不直接使用hibernate或者spring对hiberanate的支持
MyEclipse 2014 使用hibernate3 生成数据库实体类 和 xml映射文件
springboot集成hibernate无jpa,在dao中使用SessionFactory操作数据库