ssh整合时怎么能拿到session来执行HQL语句?

spring+struts2+hbeinate时我写了:basedao代码如下publicclassBaseDaoextendsHibernateDaoSupport{p... spring+struts2+hbeinate时 我写了:
basedao代码如下
public class BaseDao extends HibernateDaoSupport{
public Session getSess(){
Session session=this.getHibernateTemplate().getSessionFactory().openSession();
return session;
}
不管点出来的是什么getCurrentSession() 都返回了session。

hibernate.cfg.xml配置
<property name="current_session_context_class">thread</property>

applicationContext.xml配置
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="baseDao" class="com.qygl.dao.BaseDao">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
请问高手到底怎么能获取到session 。帮我写全些!环境里无异常,提交了有异常,一看12行就是获取session为空,这行Session session=this.getHibernateTemplate().getSessionFactory().openSession();

异常如下:500

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
com.qygl.dao.BaseDao.getSess(BaseDao.java:11)
com.qygl.dao.BaseDao.findAAA(BaseDao.java:30)
com.qygl.dao.impl.UsersDAO.findName(UsersDAO.java:39)
com.qygl.biz.impl.UsersBiz.login(UsersBiz.java:23)
action.LoginAction.execute(LoginAction.java:27)
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)
展开
 我来答
pa...4@qq.com
2011-08-17 · TA获得超过556个赞
知道小有建树答主
回答量:462
采纳率:0%
帮助的人:279万
展开全部
this.getHibernateTemplate().getSessionFactory().openSession();
这样得到session肯定没错,如果得不到那就是你的配置有问题。
但是不建议你用opensession这个方法,这是打开一个新session,需要你自己关闭 维护。
你可以直接用getHibernateTemplate()里面的方法操作数据库,不应定非要使用session,如果要session建议你用getHibernateTemplate().getSessionFactory().getCurrentSession();这样的出来的session不需要你手动关闭
更多追问追答
追问
opensession也报这个异常。我配置如果不对,希望高人指点。他们的区别我是知道哦的百度我都查了N次了,但是就没查到解决方法……
不是说 用某个方法,opensession getCurrentSession() 都好 主要帮我配个不空的session出来

谢谢谢!
追答
hibernate和spring整合,就不再需要hibernate.cfg.xml这个配置文件了,只要applicationContext.xml就可以了。
连接数据库主要是dateSource和sessionFatory的配置,我发个样例给你,你自己去改。
dao的配置你那写的就行了,配置好了就可以得到session

tp/pojo/TpUser.hbm.xml

org.hibernate.dialect.Oracle9Dialect

帐号已注销
2011-08-17 · TA获得超过1243个赞
知道小有建树答主
回答量:2126
采纳率:55%
帮助的人:665万
展开全部
bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@127.0.0.1:1521:orcl">
</property>
<property name="username" value="bbs"></property>
<property name="password" value="bbs"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
追问
复制的 看不懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式