从网上查了许都,都没能解决,不知道是配置文件有问题,还是方法写的有问题
6条回答 默认 最新
- 慕容羽 2015-12-10 08:19关注
dao层实现类:
/**
- @ClassName: BaseDaoImpl
- @Description: 基础dao实现
- @author john
-
@date 2015年2月26日 下午3:27:15
*/
@SuppressWarnings("unchecked")
public abstract class BaseDaoImpl implements BaseDao{
@Resource
private SessionFactory sessionFactory;
protected Class clazz;public BaseDaoImpl() {
ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
this.clazz = (Class) pt.getActualTypeArguments()[0];
System.out.println("class = " + clazz.getName()+" init over");
}public void save(T entity) {
getSession().persist(entity);
}public void update(T entity) {
getSession().update(entity);
}public void delete(ID id) {
Object obj = getSession().get(clazz, id);
if(obj!=null) getSession().delete(obj);
}public T getById(ID id) {
if (id == null) {
return null;
}
return (T) getSession().get(clazz, id);
}public T loadById(ID id) {
if (id == null) {
return null;
}
return (T) getSession().load(clazz, id);
}public List getByIds(ID[] ids) {
if (ids == null || ids.length == 0) {
return Collections.EMPTY_LIST;
}List<T> list = getSession().createQuery(// "FROM " + clazz.getSimpleName() + " WHERE id IN(:ids)")// .setParameterList("ids", ids)// .list(); if(list == null) return Collections.EMPTY_LIST; return list;
}
public List getAll() {
List list = getSession().createQuery(//
"FROM " + clazz.getSimpleName())//
.list();
if(list == null) return Collections.EMPTY_LIST;
return list;
}public Long getCount(){
return (Long)getSession().createQuery(//
"SELECT COUNT(*) FROM "+ clazz.getSimpleName())//
.uniqueResult();//
}public List getByHQL(String strHQL, Object... params) {
Query query = getSession().createQuery(strHQL);
if (params!=null){
for (int i = 0; i < params.length; i++){
query.setParameter(i, params[i]);
}
}
return query.list();
}public PageBean getPageBean(int pageNum,int pageSize,HqlHelper hqlHelper) {
System.out.println("pageNum:"+pageNum);
System.out.println("pageSize:"+pageSize);
System.out.println("BaseDaoImpl:"+hqlHelper);
List parameters = hqlHelper.getParameters();
System.out.println("parameters:"+parameters);
System.out.println("@@@@"+hqlHelper.getQueryListHql());
// 查询本页的数据列表
Query listQuery = getSession().createQuery(hqlHelper.getQueryListHql());
if (parameters != null && parameters.size() > 0) { // 设置参数
for (int i = 0; i < parameters.size(); i++) {
listQuery.setParameter(i, parameters.get(i));
}
}
listQuery.setFirstResult((pageNum - 1) * pageSize);
listQuery.setMaxResults(pageSize);
List list = listQuery.list(); // 执行查询// 查询总记录数 Query countQuery = getSession().createQuery(hqlHelper.getQueryCountHql()); if (parameters != null && parameters.size() > 0) { // 设置参数 for (int i = 0; i < parameters.size(); i++) { countQuery.setParameter(i, parameters.get(i)); } } Long count = (Long) countQuery.uniqueResult(); // 执行查询 return new PageBean(pageNum, pageSize, list, count.intValue());
}
protected Session getSession() {
// if (null==sessionFactory.getCurrentSession()){
// System.out.println("open获取session:"+sessionFactory.openSession());
// return sessionFactory.openSession();
// }
System.out.println("sessionFactory="+sessionFactory);
System.out.println("get获取session:"+sessionFactory.getCurrentSession());
return sessionFactory.getCurrentSession();
}
}
spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd "><!-- TODO --> <context:component-scan base-package="org.bhr.dao" /> <context:component-scan base-package="org.bhr.service" /> <!-- TODO --> <context:property-placeholder location="classpath:local_db.properties" /> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.password}"></property> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> <property name="initialPoolSize" value="${jdbc.initPoolSize}"></property> <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property> <property name="testConnectionOnCheckin" value="true"></property> <property name="automaticTestTable" value="C3P0TestTable"></property> <property name="idleConnectionTestPeriod" value="18000"></property> <property name="maxIdleTime" value="25000"></property> <property name="testConnectionOnCheckout" value="true"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> <!-- TODO --> <property name="mappingLocations" value="classpath:org/bhr/po/*.hbm.xml"></property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <!-- TODO --> <tx:attributes> <tx:method name="get*" read-only="true" /> <tx:method name="find*" read-only="true" /> <tx:method name="verify*" read-only="true" /> <tx:method name="*" /> </tx:attributes> </tx:advice> <aop:config> <!-- TODO --> <aop:pointcut expression="execution(* org.bhr.service.*.*(..))" id="txPointcut" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" /> </aop:config>
报错信息:
当前页:1
每页显示记录大小:5
hql语句org.bhr.util.HqlHelper@1784aed1
class = java.io.Serializable init over
pageNum:1
pageSize:5
BaseDaoImpl:org.bhr.util.HqlHelper@1784aed1
parameters:[]
@@@@FROM WarnInfo o
sessionFactory=null
十二月 10, 2015 3:50:54 下午 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [springmvc] in context with path [/bhr] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
at org.bhr.dao.impl.BaseDaoImpl.getSession(BaseDaoImpl.java:134)
at org.bhr.dao.impl.BaseDaoImpl.getPageBean(BaseDaoImpl.java:107)
at org.bhr.util.HqlHelper.buildPageBean(HqlHelper.java:148)
at org.bhr.web.controller.AdminInfoController.home(AdminInfoController.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:781)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:721)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2442)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2431)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:722)解决 无用评论 打赏 举报
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!