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" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml">
</property>
</bean></beans>
Hibernate的配置如下:<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration> <session-factory>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@172.16.0.169:1521:orcl
</property>
<property name="connection.username">info</property>
<property name="connection.password">info</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">hzw</property>
<mapping resource="com/hzw/bean/Emp.hbm.xml" /> </session-factory></hibernate-configuration>
自己写了个测试类代码如下:public class Test extends HibernateDaoSupport{ /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t = new Test();
List list = t.get();
System.out.println(list.size());
}
public List get(){
return super.getHibernateTemplate().find("from Emp");
}}
如果单独使用Hibernate操作数据库是可以查询出数据的!但是加上Spring过后、运行上面的代码就会报错:Exception in thread "main" java.lang.NullPointerException
at Test.get(Test.java:27)
at Test.main(Test.java:22)
错误就只有这三行、不知道是什么原因~~~希望高手给看看:某人在这里谢过了!!!
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml">
</property>
</bean></beans>
Hibernate的配置如下:<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration> <session-factory>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@172.16.0.169:1521:orcl
</property>
<property name="connection.username">info</property>
<property name="connection.password">info</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">hzw</property>
<mapping resource="com/hzw/bean/Emp.hbm.xml" /> </session-factory></hibernate-configuration>
自己写了个测试类代码如下:public class Test extends HibernateDaoSupport{ /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t = new Test();
List list = t.get();
System.out.println(list.size());
}
public List get(){
return super.getHibernateTemplate().find("from Emp");
}}
如果单独使用Hibernate操作数据库是可以查询出数据的!但是加上Spring过后、运行上面的代码就会报错:Exception in thread "main" java.lang.NullPointerException
at Test.get(Test.java:27)
at Test.main(Test.java:22)
错误就只有这三行、不知道是什么原因~~~希望高手给看看:某人在这里谢过了!!!
解决方案 »
- JAVA的几个小问题,求简单。
- .NET来JAVA求教
- 用s2h 编写 的 一个网站谁会把mysql转sqlserveer2005?
- POJO DAO SERVICE 设计相关问题?急
- Linux DNS
- 请问我想做一个网页模板,要求这个模板根据传参的不同显示不一样的内容,请问怎么办?(比如参数1网页只显示模板中的表格,参数2则显示表格+选择项)
- Struts1.2中遇到的问题,郁闷了一个星期了
- 如何写ibatis 连接 jboss的连接池呢??
- 寻找jive用户群 流下联系方式
- 如何使用java模拟post请求
- 关于Struts2 乱码问题!MySQL数据库一旦设置过编码就Unknown initial character set index '45'
- Struts2 Action 的生命周期 问题
// TODO Auto-generated method stub
Test t = new Test();
System.out.println(t.getall().size());
}
public List getall(){
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
return (List)super.getHibernateTemplate().get(Emp.class, 2);
}
配置文件不变~~~:报出这样的错误:log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/context/CurrentSessionContext
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at test.Test.getall(Test.java:25)
at test.Test.main(Test.java:20)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/context/CurrentSessionContext
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.class$(LocalSessionFactoryBean.java:174)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:554)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
... 16 more
EMP这张表对应的 JAVA文件 和 .HBM文件 在 SPRING中加载了吗 ?
* @param args
*/
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
IBaseDao basedao = (IBaseDao) app.getBean("baseDao");
List list = basedao.getAll("from Emp mp where mp.ename like ?", new Object[]{"%"+"张"+"%"});
for (int i = 0; i < list.size(); i++) {
Emp emp = (Emp) list.get(i);
System.out.println(emp.getEname());
}
}} 用来Spring的依赖注入过后就不用(好像也不能)在用new来创建对象了!
在Spring文件中要给继承了HibernateDaoSupport的类注入SessFactory。
配置文件代码如下:<!-- 注入SessFactory -->
<bean id="baseDao" class="com.boxun.dao.impl.BaseDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
数据层访问impl类代码如下:public class BaseDaoImpl extends HibernateDaoSupport implements IBaseDao { @Override
public List getAll(String hql, Object[] obj) {
Query query = super.getSession().createQuery(hql);
if (null!=obj && obj.length>0) {
for (int i = 0; i < obj.length; i++) {
query.setParameter(i, obj[i]);
}
}
return query.list();
}}
呵呵~~~问题出现的时候总是那么的令人心烦! 解决了就看开很多!再次、谢谢各位帮忙!!!