我的思路是在定义每个控制器时都使用如下方法应用sessionFactory
<bean id="mycontoller" class="my.Mycontoller">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<bean id="mycontoller" class="my.Mycontoller">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
解决方案 »
- java 的异常处理
- 部署Weblogic启动报错:When processing WebService module 'sqyl'. Failed to load servlet
- 支付宝支付接口集成
- 各位大哥,struts2小问题,200元费,100分
- 咋样解决多人同时登录?
- J2EE政务网,外包。哪位接。联系我。邮箱:[email protected]
- 求:pro spring(spring 专业开发指南)书中各个章节的源代码_万分感谢!!
- 求算法(要经典的)
- 请高手解决一个奇怪的问题
- 求websphere5.0在hpux上的安装手册
- 关于properties文件的摆放位置,我有点迷惑
- 一个struts超级棘手的问题,如果有人可以解决的的话,那他一定是个超强人!谢谢各位大虾了!~!!!!
感觉编辑器有点问题IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)
应该是java/lang/String但前面多了一些
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><!--
- Application context definition for Petclinic on Hibernate.
-->
<beans> <!-- 如果你用的是连接池,就用下面的JNDI-->
<!--<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"><value>java:/comp/env/jdbc/connectDB</value></property>
</bean>--> <!-- 如果不是连接池,象下面的直接连I-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"><value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></property>
<property name="url"><value>jdbc:microsoft:sqlserver://192.168.100.100:1433;selectMethod=Cursor;DatabaseName=xcsite</value></property>
<property name="username"><value>sa</value></property>
<property name="password"><value>sa</value></property>
</bean><bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
<property name="dataSource"><ref local="dataSource"/></property>
<property name="mappingResources">
<value>user.hbm.xml</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<!--假设你的DAO类为:com.User.java-->
<bean id="user" class="com.User">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean></beans>
***************************************************************************
下面写一个简单的测试:
import java.io.*;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import dhcc.hibernate.dao.impl.RoleDao;
import dhcc.hibernate.model.THymdRole;
import dhcc.struts.form.impl.RoleActionForm;public class SpringTest { public static void main(String[] args) {
try {
InputStream is = new FileInputStream("D:\\applicationContext.xml");//这里写你的applicationContext.xml文件路径
XmlBeanFactory factory = new XmlBeanFactory(is); RoleDao userDAO = (RoleDao) factory.getBean("user"); com.User user = new com.User();
user.方法(); } catch (Exception ex) {
ex.printStackTrace();
}
}
}
user.方法();改为:
com.User user = (com.User) factory.getBean("user");
user.方法();
Transaction tx = sess.beginTransaction();
List result = sess.createQuery("from user_info").list();//这行出错
tx.commit();
错误如下:
java.lang.NoClassDefFoundError: antlr/ANTLRException
org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:27)
org.hibernate.impl.SessionFactoryImpl.createQueryTranslators(SessionFactoryImpl.java:357)
org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:423)
org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:884)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:834)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
hibernate.Hi_Page.handleRequestLogic(Hi_Page.java:142)
com.framework.right.AbstractLogicController.handleRequestInternal(AbstractLogicController.java:33)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:128)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
org.springframework.web.servlet.FrameworkServlet.serviceWrapper(FrameworkServlet.java:386)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:346)
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
谢谢.也请大家再帮帮我吧!
我用的是hibernate2.1.2,spring1.1,你说的hibernate3.0我没用过,但是可以肯定是cglib-full-2.0.2.jar这个包的版本可能不对。你去到spring源代码包的lib下找一个这个包,spring1.2带的不一定是我提供给你的这个版本,可能比这个还要新。这个包的功能就是动态生成字节,是一个强大的,高性能,高质量的Code生成类库,hibernate动态生成po就是利用的这个包。btw:hibernate3.0和hibernate2的有些不一样,所以spring1.2的版本中find等方法调用方式也和spring1.1封装的不一样。听说好象find这个方法被去掉了?