JiveJdon Community Forums
在线279人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 开源项目大家谈
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 1 回复 / 1
 发表新帖子   回复该主题贴
wilson751

悄悄话
发表文章: 54
注册时间: 2005年10月11日 11:22
关于HibernateDaoSupport使用的问题,高手指点 2006年07月10日 00:14 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表
实现的是一个用户输入用户名、密码,到数据库中验证有无该用户的功能。程序报错:
java.lang.IllegalArgumentException: No SessionFactory specified:

org.snailheart.dao.BaseDAO.openSession(这句出错)



简单说一下程序:

1.创建了一个BaseDAO.java,继承了HibernateDaoSupport,代码如下:

package test.dao;

import org.springframework.orm.hibernate.support.HibernateDaoSupport;
import org.springframework.orm.hibernate.SessionFactoryUtils;
import net.sf.hibernate.Session;
import net.sf.hibernate.Query;
import net.sf.hibernate.HibernateException;

public class BaseDAO extends HibernateDaoSupport {
public Session openSession() {
return SessionFactoryUtils.getSession(getSessionFactory(), false);
}

public Query getQuery(String query) throws HibernateException{
Session session = this.openSession();
return session.createQuery(query);
}

}


2.创建UserDAOHBImpl.java,继承BaseDAO。在其中实现了访问DB的具体
操作,代码如下,为了便于查看,只保留了一个方法:

package test.dao.hibernate;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.springframework.orm.hibernate.support.HibernateDaoSupport;
import net.sf.hibernate.Session;
import net.sf.hibernate.Query;
import net.sf.hibernate.HibernateException;

import test.dao.BaseDAO;
import test.dao.UserDAO;
import test.domain.User;
import test.dto.UserDTO;

public class UserDAOHBImpl extends BaseDAO implements UserDAO {

public User getUser(UserDTO userDTO) {
String userName = userDTO.getUserName();
String pwd = userDTO.getPassword();

String queryStr = "select user from User where User.userName
=:name and User.passwd =:pwd";

Query query = this.getQuery(queryStr);
query.setString("name", userName);
query.setString("pwd", pwd);

List userList = query.list();
if(userList != null) {
user = (User)userList.get(0);
}else {
user = null;
}
}
}


3.在applicationContext.xml中,做相应地配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="oracleDS"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>

<property name="url">
<value>jdbc:oracle:thin:@localhost:1521:oradb</value>
</property>

<property name="username">
<value>test</value>
</property>

<property name="password">
<value>test</value>
</property>
</bean>

<bean id="sessionFactory"
class="org.springframework.orm.hibernate.LocalSessionFactoryBean">

<property name="dataSource">
<ref local="oracleDS"/>
</property>

<property name="mappingDirectoryLocations">
<list>
<value>classpath:/org/snailheart/domain/hbm</value>
</list>
</property>

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
net.sf.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>


<bean id="userDAO"
class="org.snailheart.dao.hibernate30.UserDAOHBImpl">

<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>

</beans>

4.在Struts的action类中,调用UserDAOHBImpl的方法
getUser(UserDTO userDTO),查询是否存在当前用户,程序报错:

java.lang.IllegalArgumentException: No SessionFactory specified:

org.snailheart.dao.BaseDAO.openSession

wilson751

悄悄话
发表文章: 54
注册时间: 2005年10月11日 11:22
Re: 关于HibernateDaoSupport使用的问题,高手指点 2006年07月10日 00:24 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
applicationContext.xml显示有问题,请看这里:
http://www.matrix.org.cn/thread.shtml?topicId=48247&forumId=23
这个主题有 1 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  每2分种自动备份发贴内容Ctrl-V粘贴取出,提问题前先查询标签列表

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam