问题描述
public Manuscript selectByMaid(int id) throws Exception {Manuscript manuscript = (Manuscript) this.getHibernateTemplate().get(Manuscript.class, id);return manuscript;}这段代码是运行成功的 public void exportMan(int maid, String name, OutputStream os) throws Exception{Manuscript m = (Manuscript) this.getHibernateTemplate().get(Manuscript.class, maid); }这两个方法是属于同一class里面的 但是报下列错误 java.lang.NullPointerExceptionat com.kinrich.mediaStorage.daoimp.ManuscriptDaoImp.exportMan(ManuscriptDaoImp.java:99)at com.kinrich.mediaStorage.action.ManuscriptAction.getDownloadFile(ManuscriptAction.java:266)at org.apache.jsp.templates.downinfo_jsp._jspService(downinfo_jsp.java:93)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at com.kinrich.mediaStorage.Interceptor.CheckInterceptor.doFilter(CheckInterceptor.java:38)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)at java.lang.Thread.run(Thread.java:722) 请问这个问题是出在哪里 我调试的时候显示的是this.getHibernateTemplate()为空 但是同一类里面 为什么会有两个结果呢? 问题补充:suziwen 写道
解决方案
把相关的代码当附件传下吧,不然还是没法帮你找出问题
解决方案二:
代码虽然是同一个类里的,但不代表调用这个代码的环境相同,调用者相同,所以结果也就可能不相同看你的代码好像是com.kinrich.mediaStorage.action.ManuscriptAction.getDownloadFile去调用 的你能把这代码相关的也贴出来吗,还有你执行成功的那个方法调用 的相关代码又是什么
解决方案三:
看看我占得,你得学会看别人的弄成自己的
解决方案四:
1.一、find(String queryString); 2. 3. 示例:this.getHibernateTemplate().find("from bean.User"); 4. 5. 返回所有User对象 6. 7.二、find(String queryString , Object value); 8. 9. 示例:this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); 10. 11. 或模糊查询:this.getHibernateTemplate().find("from bean.User u where u.name like ?", "%test%"); 12. 13. 返回name属性值为test的对象(模糊查询,返回name属性值包含test的对象) 14. 15.三、find(String queryString, Object[] values); 16. 17. 示例:String hql= "from bean.User u where u.name=? and u.password=?" 18. 19. this.getHibernateTemplate().find(hql, new String[]{"test", "123"}); 20. 21. 返回用户名为test并且密码为123的所有User对象 22. 23.--------------------------------- 24. 25.四、findByExample(Object exampleEntity) 26. 27. 示例: 28. 29. User u=new User(); 30. 31. u.setPassword("123");//必须 符合的条件但是这两个条件时并列的(象当于sql中的and) 32. 33. u.setName("bb"); 34. 35. list=this.getHibernateTemplate().findByExample(u,start,max); 36. 37. 返回:用户名为bb密码为123的对象 38. 39.五、findByExample(Object exampleEntity, int firstResult, int maxResults) 40. 41. 示例: 42. 43. User u=new User(); 44. 45. u.setPassword("123");//必须 符合的条件但是这两个条件时并列的(象当于sql中的and) 46. 47. u.setName("bb"); 48. 49. list=this.getHibernateTemplate().findByExample(u,start,max); 50. 51. 返回:满足用户名为bb密码为123,自start起共max个User对象。(对象从0开始计数) 52. 53.--------------------------------------------------- 54. 55.六、findByNamedParam(String queryString , String paramName , Object value) 56. 57. 使用以下语句查询: 58. 59. String queryString = "select count(*) from bean.User u where u.name=:myName"; 60. 61. String paramName= "myName"; 62. 63. String value= "xiyue"; 64. 65. this.getHibernateTemplate().findByNamedParam(queryString, paramName, value); 66. 67. System.out.println(list.get(0)); 68. 69. 返回name为xiyue的User对象的条数 70. 71.七、findByNamedParam(String queryString , String[] paramName , Object[] value) 72. 73. 示例: 74. 75. String queryString = "select count(*) from bean.User u where u.name=:myName and u.password=:myPassword"; 76. 77. String[] paramName= new String[]{"myName", "myPassword"}; 78. 79. String[] value= new String[]{"xiyue", "123"}; 80. 81. this.getHibernateTemplate().findByNamedParam(queryString, paramName, value); 82. 83. 返回用户名为xiyue密码为123的User对象