这报错怎么解决啊,解决不了了

这报错怎么解决啊,解决不了了

categoryController

add

Mon Mar 23 17:56:30 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.i.hs.global.DispatcherServlet.service(DispatcherServlet.java:49)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at com.i.hs.global.EncodingFilter.doFilter(EncodingFilter.java:18)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:748)

Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.i.hs.dao.CategoryDao.insert

at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235)

at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53)

at org.apache.ibatis.binding.MapperProxy.lambda$cachedMapperMethod$0(MapperProxy.java:98)

at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)

at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:97)

at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:92)

at com.sun.proxy.$Proxy16.insert(Unknown Source)

at com.i.hs.service.impl.CategoryServiceImpl.add(CategoryServiceImpl.java:17)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)

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.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)

at com.sun.proxy.$Proxy18.add(Unknown Source)

at com.i.hs.controller.CategoryController.add(CategoryController.java:38)

... 30 more


<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.i.hs.dao.CategoryDao">
   <insert id="insert" parameterType="Category" useGeneratedKeys="true">
       insert into category(name,create_time,update_time) values (#{name},#{createTime},#{updateTime})
   </insert>
   <update id="update" parameterType="Category">
       update category set name=#{name},create_time=#{createTime},update_time=#{updateTime}
   </update>
   <delete id="delete" parameterType="Integer">
       delete from category where id=#{id}
   </delete>
   <select id="selectAll">
       select * from department
   </select>
</mapper>


<?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: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.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd
   http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx.xsd">

   <!--Spring整合Mybatis-->
   <!--数据源-->
   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
       <property name="url" value="jdbc:mysql://localhost:3306/hospital?useUnicode=true&amp;characterEncoding=UTF-8"></property>
       <property name="username" value="root"></property>
       <property name="password" value="root"></property>
   </bean>
   <!--SqlSession工厂-->
   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="dataSource" ref="dataSource"></property>
       <property name="typeAliasesPackage" value="com.i.hs.entity"></property>
       <property name="configuration">
           <bean class="org.apache.ibatis.session.Configuration">
               <property name="mapUnderscoreToCamelCase" value="true"></property>
           </bean>
       </property>
   </bean>
   <!--持久化对象-->
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
       <property name="basePackage" value="com.i.hs.dao"></property>
       <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
   </bean>

   <!--声明式事务-->
   <!--事务管理器-->
   <bean id="transcationManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
       <property name="dataSource" ref="dataSource"></property>
   </bean>
   <!--通知-->
   <tx:advice id="txAdvice" transaction-manager="transcationManager">
       <tx:attributes>
           <tx:method name="get*" read-only="true"/>
           <tx:method name="find*" read-only="true"></tx:method>
           <tx:method name="search*" read-only="true"></tx:method>
           <tx:method name="*" propagation="REQUIRED"></tx:method>
       </tx:attributes>
   </tx:advice>
   <!--植入-->
   <aop:config>
       <aop:pointcut id="txPointcut" expression="execution(* com.i.hs.service.*.*(..))"/>
       <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"></aop:advisor>
   </aop:config>

   <!--声明式事务-->
   <context:component-scan base-package="com.i.hs"></context:component-scan>
   <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
</beans>

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,非常抱歉没有为同学表述清楚,下面重新来一一解释:

        1、mapper中的namespace用于绑定dao接口的,即面向接口编程。也就是说namespace是为了绑定映射对应的dao接口,使得mapper中的sql语句能够与dao中的方法对应。

        2、而resource的文件名与java文件下那个包要包名等路径一致,是这两者的关联步骤:要求包名,类名要完全一致,myabtis会自动将接口和mapper文件对应,就不需要咱们配置了。

http://img1.sycdn.imooc.com//climg/5e7ac17309bb6a9f03420336.jpg

myabtis默认会在dao的包找对应的,mapper文件,在resoures下和dao的结构一样时,编译之后dao和mapper就会在同一个包下,这样就可以找到mapper了。

http://img1.sycdn.imooc.com//climg/5e7ac52d09878b1803920245.jpg



如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕小班 2020-03-24 20:05:05

同学你好,1、mapper的文件名不是com.i.hs.dao,而是mappers,对应同学需要在对应的配置文件中配置,例如:

http://img1.sycdn.imooc.com//climg/5e79f67309cbea7805430078.jpg

        2、文件名com.i.hs.dao跟其他两个com.i.hs.dao关系,老师查看之前的问答中,老师是回复了同学三个之间的关系。  https://class.imooc.com/course/qadetail/206716

对同学提出的

http://img1.sycdn.imooc.com//climg/5e79f70d09e63a7509220296.jpg

配置文件中的MapperScannerConfigurer中是接口的路径,而不是mapper的路径,myabtis在启动时会自动扫描dao,创建相应的代理。

如果同学想表达的不是这个意思,还麻烦同学具体描述一下。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 明月_0 #1
    那个文件名是什么关系就是那个包含xml的,xml中的时namesapce,spring和myabtis整合时,namesapce应该为接口的名称,这resource的文件名,跟那个java文件下那个包的文件一样,有什么联系吗,为什么要一样了?
    2020-03-24 20:20:18
好帮手慕小班 2020-03-23 18:56:06

同学你好,根据贴出的报错信息: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.i.hs.dao.CategoryDao.insert--> 在mybatis中dao接口与mapper配置文件在做映射绑定的时候出现问题,也就是接口与xml匹配出现问题。

同学的mapper文件是在resource下的com.i.hs.dao目录中吗,同学可以检查一下自己的mapper文件的位置。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 明月_0 #1
    我配置的mapper的文件名不是com.i.hs.dao就叫的mappers 我想问下这个文件名com.i.hs.dao跟其他两个com.i.hs.dao关系 我之前问了一下,只回答了namespac=“com.i.hs.dao.DepartmentDao“跟dao文件下的关系,
    2020-03-24 18:36:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师