spring配置jndi数据源Mvc+Mybatis多数据源配置报错 Invalid bound statement

匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。Mybatis Invalid bound statement (not found):.....问题 -
- ITeye博客
博客分类:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.mogo.mapper.LossesAreCKDetailMapper.insert
at org.apache.ibatis.binding.MapperMethod$SqlCommand.&init&(MapperMethod.java:184)
at org.apache.ibatis.binding.MapperMethod.&init&(MapperMethod.java:38)
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:49)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:42)
at com.sun.proxy.$Proxy80.insert(Unknown Source)
at com.mogo.service.impl.LossesAreServiceImpl.lossesAreCheckOut(LossesAreServiceImpl.java:166)
at com.mogo.service.impl.LossesAreServiceImpl$$FastClassByCGLIB$$9f90d050.invoke(&generated&)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701)
此情况是由于 Mapper.xml配置文件中 namespace 文件位置写错导致的,特此记录!
浏览: 8850 次
来自: 上海org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): test.dao.ProductMapper.find
at org.apache.ibatis.binding.MapperMethod$SqlCommand.&init&(MapperMethod.java:214) ~[mybatis-3.4.0.jar:3.4.0]
at org.apache.ibatis.binding.MapperMethod.&init&(MapperMethod.java:48) ~[mybatis-3.4.0.jar:3.4.0]
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:59) ~[mybatis-3.4.0.jar:3.4.0]
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) ~[mybatis-3.4.0.jar:3.4.0]
at com.sun.proxy.$Proxy59.find(Unknown Source) ~[na:na]
at test.Hello.home(Hello.java:26) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_111]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_111]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:220) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.6.jar:8.5.6]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:89) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) [tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) [tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) [tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802) [tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410) [tomcat-embed-core-8.5.6.jar:8.5.6]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.6.jar:8.5.6]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_111]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.6.jar:8.5.6]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_111]
原因:mapper文件没有自动复制到相应位置(可到target\classes目录下查找)
解决:在pom.xml文件&build&&/build&中加入:
&resources&
&resource&
&directory&src&/directory&
&includes&
&include&**/*.xml&/include&
&/includes&
&/resource&
&/resources&
阅读(...) 评论()匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。JavaWeb学习(9)
给大家推荐一个网站::,微信订阅号:youxijishu.每天推送一篇技术文章。
一,spring.xml配置
&?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:aop=&http://www.springframework.org/schema/aop&
xmlns:tx=&http://www.springframework.org/schema/tx& xmlns:util=&http://www.springframework.org/schema/util&
xmlns:context=&http://www.springframework.org/schema/context& xmlns:p=&http://www.springframework.org/schema/p&
xsi:schemaLocation=&http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd&
default-lazy-init=&true&&
class=&org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&&
&property name=&locations&&
&value&/WEB-INF/config/init-config.properties&/value&
&/property&
&bean id=&Manager_dataSource& class=&com.alibaba.druid.pool.DruidDataSource&
init-method=&init& destroy-method=&close&&
&!-- 基本属性 url、user、password --&
&property name=&url& value=&${dataSource2.url}& /&
&property name=&username& value=&${dataSource.username}& /&
&property name=&password& value=&${dataSource.password}& /&
&property name=&connectionProperties& value=&${dataSource.driver}&&&/property&
&!-- 配置初始化大小、最小、最大 --&
&property name=&initialSize& value=&1& /&
&property name=&minIdle& value=&1& /&
&property name=&maxActive& value=&20& /&
&!-- 配置获取连接等待超时的时间 --&
&property name=&maxWait& value=&60000& /&
&!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --&
&property name=&timeBetweenEvictionRunsMillis& value=&60000& /&
&!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --&
&property name=&minEvictableIdleTimeMillis& value=&300000& /&
&property name=&validationQuery& value=&SELECT 'x'& /&
&property name=&testWhileIdle& value=&true& /&
&property name=&testOnBorrow& value=&false& /&
&property name=&testOnReturn& value=&false& /&
&!-- 打开PSCache,并且指定每个连接上PSCache的大小 --&
&property name=&poolPreparedStatements& value=&true& /&
&property name=&maxPoolPreparedStatementPerConnectionSize&
value=&20& /&
&!-- 配置监控统计拦截的filters --&
&property name=&filters& value=&stat& /&
&bean id=&User_dataSource& class=&com.alibaba.druid.pool.DruidDataSource&
init-method=&init& destroy-method=&close&&
&!-- 基本属性 url、user、password --&
&property name=&url& value=&${dataSource.url}& /&
&property name=&username& value=&${dataSource.username}& /&
&property name=&password& value=&${dataSource.password}& /&
&property name=&connectionProperties& value=&${dataSource.driver}&&&/property&
&!-- 配置初始化大小、最小、最大 --&
&property name=&initialSize& value=&1& /&
&property name=&minIdle& value=&1& /&
&property name=&maxActive& value=&20& /&
&!-- 配置获取连接等待超时的时间 --&
&property name=&maxWait& value=&60000& /&
&!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --&
&property name=&timeBetweenEvictionRunsMillis& value=&60000& /&
&!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --&
&property name=&minEvictableIdleTimeMillis& value=&300000& /&
&property name=&validationQuery& value=&SELECT 'x'& /&
&property name=&testWhileIdle& value=&true& /&
&property name=&testOnBorrow& value=&false& /&
&property name=&testOnReturn& value=&false& /&
&!-- 打开PSCache,并且指定每个连接上PSCache的大小 --&
&property name=&poolPreparedStatements& value=&true& /&
&property name=&maxPoolPreparedStatementPerConnectionSize&
value=&20& /&
&!-- 配置监控统计拦截的filters --&
&property name=&filters& value=&stat& /&
&!-- ===================数据源1============================================= --&
&!-- define the SqlSessionFactory --&
&bean id=&sqlSessionFactory1& class=&org.mybatis.spring.SqlSessionFactoryBean&&
&property name=&dataSource& ref=&User_dataSource& /&
&property name=&typeAliasesPackage& value=&com.chuyun.game.model.user& /&
&bean class=&org.mybatis.spring.mapper.MapperScannerConfigurer&&
&property name=&sqlSessionFactoryBeanName& value=&sqlSessionFactory1& /&
&property name=&basePackage& value=&com.chuyun.game.model.batis.user& /&
&bean id=&transactionManager&
class=&org.springframework.jdbc.datasource.DataSourceTransactionManager&&
&property name=&dataSource& ref=&User_dataSource& /&
&qualifier value=&isap& /&
&!-- 全注解方式 需加上@Transactional --&
&tx:annotation-driven transaction-manager=&transactionManager& /&
&!-- ===========================数据源2======================================= --&
&bean id=&sqlSessionFactory2& class=&org.mybatis.spring.SqlSessionFactoryBean&&
&property name=&dataSource& ref=&Manager_dataSource& /&
&property name=&typeAliasesPackage& value=&com.chuyun.game.model.manager& /&
&bean class=&org.mybatis.spring.mapper.MapperScannerConfigurer&&
&property name=&sqlSessionFactoryBeanName& value=&sqlSessionFactory2&/&
&property name=&basePackage& value=&com.chuyun.game.model.batis.manager& /&
&bean id=&transactionManager2&
class=&org.springframework.jdbc.datasource.DataSourceTransactionManager&&
&property name=&dataSource& ref=&Manager_dataSource& /&
&qualifier value=&insurance& /&
&!-- 全注解方式 --&
&tx:annotation-driven transaction-manager=&transactionManager2& /&
&!-- ===================================================================== --&
&!-- 配置redis --&
&bean id=&poolConfig& class=&redis.clients.jedis.JedisPoolConfig&&
&property name=&testOnBorrow& value=&false& /&
&bean id=&jedisConnectionFactory&
class=&org.springframework.data.redis.connection.jedis.JedisConnectionFactory&
p:host-name=&127.0.0.1& p:port=&6380& p:password=&chuyunredis_login&
p:pool-config-ref=&poolConfig& /&
&/beans&二,UserDao.java
package com.chuyun.game.model.batis.
import com.chuyun.game.model.user.U
public interface UserDao {
public void insertUser(User user);
public User getUserByName(String name);
public User getUserByName2(String name);
三,UserDao.xml(注:此xml文件必须与UserDao.java同名且在一个文件夹,否则会报错:&Invalid bound statement (not found))
&?xml version=&1.0& encoding=&UTF-8& ?&
&!DOCTYPE mapper PUBLIC &-//mybatis.org//DTD Mapper 3.0//EN&
&http://mybatis.org/dtd/mybatis-3-mapper.dtd&&
&mapper namespace=&com.chuyun.game.model.batis.user.UserDao&&
&insert id=&insertUser& parameterType=&user&&
insert into t_user
(id,uuid,name,password,zoneid,allzone,logintime,ip,createtime) values
(#{id},#{uuid},#{name},#{password},#{zoneid},#{allzone},#{logintime},#{ip},#{createtime})
&select id=&getUserByName& parameterType=&String& resultType=&user&&
select * from t_user where name = #{username}
四,Service
在service中直接引用UserDao就可以访问数据库了。有不明白的地方可以加QQ群:,定有解答。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:88244次
积分:1506
积分:1506
排名:千里之外
原创:60篇
转载:30篇
评论:11条
(1)(1)(1)(2)(2)(3)(3)(3)(1)(1)(3)(3)(3)(1)(1)(3)(2)(6)(3)(2)(1)(10)(1)(6)(13)(8)(4)(2)

我要回帖

更多关于 springmvc配置数据源 的文章

 

随机推荐