SpringMVC+Mybatis+Mysql+Maven 出现的奇葩错误,有经验的大佬过来看看

七夕oo 2018-05-10 07:51:17
说来惭愧,工作好几年,一直都未能与Maven还有Mybatis项目有过接触,近日淘来一套源码,想自学一下,结果部署的时候发现大量问题,已解决的差不多,现在卡在登陆这里了,在登陆的时候后台一直报空指针的问题,起初我以为是我传值的问题,一番DEBUG后发现我错了,问题并没有这么简单,现贴出代码及日志,大家一起讨论下!

首先,日志文件
看一楼
...全文
1360 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
随心人- 2018-06-21
  • 打赏
  • 举报
回复
查询语句 表的前边加上数据库的名字
stacksoverflow 2018-06-19
  • 打赏
  • 举报
回复
传参数的问题,参数这样写 #{id}
gggggame 2018-06-19
  • 打赏
  • 举报
回复
Error querying database. Cause: java.lang.NullPointerException ### The error may exist in file [D:\DataNew\HappyCreater\ERServer\webapps\mallweb\WEB-INF\classes\mybatis\system\UserMapper.xml] ### The error may involve UserMapper.getUserInfo-Inline 这不都告诉你了吗,自己确定下数据库字段对不,SQL对不,Mybatis的 UserMapper.xml中getUserInfo对不对。工作好几年了你就这样呀?
亲爱的Joe 2018-06-13
  • 打赏
  • 举报
回复
mapper java和mapper xml发出来看看。另外你是不是用了mybatis逆向工程?逆向工程生成代码前有没有先删除之前生成的内容? 如果你用了逆向工程,就先自己检查,没用的话,贴mapper文件出来看看
JOKER叔叔 2018-06-13
  • 打赏
  • 举报
回复
传参问题,selectOne(Unknown Source),未知参数
edward4408 2018-06-12
  • 打赏
  • 举报
回复
and USERNAME = ? and PASSWORD=? 两个参数没传进去
Sweeping Monk 2018-05-14
  • 打赏
  • 举报
回复
空指针,debug,查看那个值为空了,mybatis动态sql,mapeer映射文件动态sql可减少部分空指针异常
sgywwy 2018-05-14
  • 打赏
  • 举报
回复
看看你的Mapper映射写错没
zk_Kang 2018-05-11
  • 打赏
  • 举报
回复
好像是你查出来的数据,映射类有问题,先判断下sql有无问题,在判断下,映射的xml文件是否对;判断下,sql是否查出值。
maradona1984 2018-05-11
  • 打赏
  • 举报
回复
大概原因应该是你xml有问题,然后抛出异常,被捕获之后,组装异常对象的工厂类出现空指针,最终体现给你的是空指针 这个问题先ctrl+shift+t 找到org.apache.ibatis.session.defaults.DefaultSqlSession,知道111行,断点查看异常是什么 断点到org.apache.ibatis.exceptions.ExceptionFactory这个类的工厂方法看到底为啥会抛出空指针异常 有些问题在网上搜不到答案,最好先自己进源码看看
竹子_bamboo 2018-05-11
  • 打赏
  • 举报
回复
你要看下UserMapper.xml跟UserMapper.java有没有问题额,特别是映射的id啊,参数啊啥的,他报错也是指向这个文件的
QWERT4745 2018-05-11
  • 打赏
  • 举报
回复
仔细检查实体类的名称和类型,以及传参数的类型等。 可以尝试将语句写成固定格式,不传参数。 如果所有的select语句都报错那就查看下jar包是否兼容,尤其是涉及到数据库的包。
  • 打赏
  • 举报
回复
UserMapper文件内容看看
七夕oo 2018-05-10
  • 打赏
  • 举报
回复
三楼继续:
Caused by: java.lang.NullPointerException
	at org.apache.ibatis.type.StringTypeHandler.setNonNullParameter(StringTypeHandler.java:31)
	at org.apache.ibatis.type.StringTypeHandler.setNonNullParameter(StringTypeHandler.java:26)
	at org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:50)
	at org.apache.ibatis.type.UnknownTypeHandler.setNonNullParameter(UnknownTypeHandler.java:45)
	at org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:50)
	at org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:81)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:80)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:61)
	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:606)
	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
	at com.sun.proxy.$Proxy111.parameterize(Unknown Source)
	at org.apache.ibatis.executor.ReuseExecutor.prepareStatement(ReuseExecutor.java:79)
	at org.apache.ibatis.executor.ReuseExecutor.doQuery(ReuseExecutor.java:56)
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:267)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:137)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:96)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:77)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:108)
	... 85 more
七夕oo 2018-05-10
  • 打赏
  • 举报
回复
二楼继续日志:
### Cause: java.lang.NullPointerException
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371)
	at com.sun.proxy.$Proxy15.selectOne(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:163)
	at com.yq.dao.DaoSupport.findForObject(DaoSupport.java:109)
	at com.fh.service.system.user.impl.UserService.getUserByNameAndPwd(UserService.java:38)
	at com.fh.service.system.user.impl.UserService$$FastClassBySpringCGLIB$$c0a07998.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:711)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
	at com.fh.service.system.user.impl.UserService$$EnhancerBySpringCGLIB$$f995a3c4.getUserByNameAndPwd(<generated>)
	at com.fh.controller.system.login.LoginController.login(LoginController.java:109)
	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:606)
	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:104)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	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.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
	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:108)
	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:219)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2555)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2544)
	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:744)
Caused by: org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.NullPointerException
### The error may exist in file [D:\DataNew\HappyCreater\ERServer\webapps\mallweb\WEB-INF\classes\mybatis\system\UserMapper.xml]
### The error may involve UserMapper.getUserInfo-Inline
### The error occurred while setting parameters
### SQL: select     USER_ID,   USERNAME,   PASSWORD,   NAME,   RIGHTS,   ROLE_ID,   LAST_LOGIN,   IP,   STATUS,   BZ,   SKIN,   EMAIL,   NUMBER,   PHONE    from       SYS_USER      where 1=1       and USERNAME = ? and PASSWORD=?
### Cause: java.lang.NullPointerException
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:26)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:111)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:102)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:66)
	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:606)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358)
	... 78 more

七夕oo 2018-05-10
  • 打赏
  • 举报
回复
日志错误:

[http-apr-8081-exec-8] DEBUG UserMapper.getUserInfo - ==>  Preparing: select USER_ID, USERNAME, PASSWORD, NAME, RIGHTS, ROLE_ID, LAST_LOGIN, IP, STATUS, BZ, SKIN, EMAIL, NUMBER, PHONE from SYS_USER where 1=1 and USERNAME = ? and PASSWORD=? 
[http-apr-8081-exec-8] DEBUG org.mybatis.spring.SqlSessionUtils - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@373dbe20]
[http-apr-8081-exec-8] DEBUG org.mybatis.spring.SqlSessionUtils - Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@373dbe20]
[http-apr-8081-exec-8] DEBUG org.mybatis.spring.SqlSessionUtils - Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@373dbe20]
[http-apr-8081-exec-8] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
[http-apr-8081-exec-8] DEBUG com.alibaba.druid.pool.PreparedStatementPool - {conn-10001, pstmt-20000} enter cache
[http-apr-8081-exec-8] DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager - Should roll back transaction but cannot - no transaction available
[http-apr-8081-exec-8] DEBUG org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver - Resolving exception from handler [public java.lang.Object com.fh.controller.system.login.LoginController.login(java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception]: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.NullPointerException
### The error may exist in file [D:\DataNew\HappyCreater\ERServer\webapps\mallweb\WEB-INF\classes\mybatis\system\UserMapper.xml]
### The error may involve UserMapper.getUserInfo-Inline
### The error occurred while setting parameters
### SQL: select     USER_ID,   USERNAME,   PASSWORD,   NAME,   RIGHTS,   ROLE_ID,   LAST_LOGIN,   IP,   STATUS,   BZ,   SKIN,   EMAIL,   NUMBER,   PHONE    from       SYS_USER      where 1=1       and USERNAME = ? and PASSWORD=?
### Cause: java.lang.NullPointerException
[http-apr-8081-exec-8] DEBUG org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver - Resolving exception from handler [public java.lang.Object com.fh.controller.system.login.LoginController.login(java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception]: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.NullPointerException
### The error may exist in file [D:\DataNew\HappyCreater\ERServer\webapps\mallweb\WEB-INF\classes\mybatis\system\UserMapper.xml]
### The error may involve UserMapper.getUserInfo-Inline
### The error occurred while setting parameters
### SQL: select     USER_ID,   USERNAME,   PASSWORD,   NAME,   RIGHTS,   ROLE_ID,   LAST_LOGIN,   IP,   STATUS,   BZ,   SKIN,   EMAIL,   NUMBER,   PHONE    from       SYS_USER      where 1=1       and USERNAME = ? and PASSWORD=?
### Cause: java.lang.NullPointerException
[http-apr-8081-exec-8] DEBUG org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolving exception from handler [public java.lang.Object com.fh.controller.system.login.LoginController.login(java.lang.String,java.lang.String,java.lang.String) throws java.lang.Exception]: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.NullPointerException
### The error may exist in file [D:\DataNew\HappyCreater\ERServer\webapps\mallweb\WEB-INF\classes\mybatis\system\UserMapper.xml]
### The error may involve UserMapper.getUserInfo-Inline
### The error occurred while setting parameters
### SQL: select     USER_ID,   USERNAME,   PASSWORD,   NAME,   RIGHTS,   ROLE_ID,   LAST_LOGIN,   IP,   STATUS,   BZ,   SKIN,   EMAIL,   NUMBER,   PHONE    from       SYS_USER      where 1=1       and USERNAME = ? and PASSWORD=?
### Cause: java.lang.NullPointerException
[http-apr-8081-exec-8] DEBUG org.springframework.web.servlet.DispatcherServlet - Could not complete request
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.NullPointerException
### The error may exist in file [D:\DataNew\HappyCreater\ERServer\webapps\mallweb\WEB-INF\classes\mybatis\system\UserMapper.xml]
### The error may involve UserMapper.getUserInfo-Inline
### The error occurred while setting parameters
### SQL: select     USER_ID,   USERNAME,   PASSWORD,   NAME,   RIGHTS,   ROLE_ID,   LAST_LOGIN,   IP,   STATUS,   BZ,   SKIN,   EMAIL,   NUMBER,   PHONE    from       SYS_USER      where 1=1       and USERNAME = ? and PASSWORD=?

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧