Resolva o problema de falha de configuração quando MyBatis integra SpringMVC

razão errada

  1. A primeira razão: pode ser que o conteúdo do arquivo de configuração Mybatis tenha sido escrito incorretamente e verificado separadamente: configuração da fonte de dados, configuração de varredura de mapeamento do mapeador, configuração SQLSessionFactory, configuração SqlSession.
    Anexe o código completo do projeto de configuração: (o caso é baseado no conjunto de conexões Ali druid)
<!-- druid连接池配置 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <!-- 数据源连接属性 -->
        <property name="driverClassName" value="${driver}" />
        <property name="url" value="${url}" />
        <property name="username" value="${username}" />
        <property name="password" value="${password}" />
        <!-- 配置初始化大小、最小、最大 -->
        <property name="initialSize" value="${initialSize}" />
        <property name="minIdle" value="${minIdle}" />
        <property name="maxActive" value="${maxActive}" />
        <!-- 配置获取连接等待超时的时间 -->
        <property name="maxWait" value="${maxWait}" />
        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="60000" />
        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="300000" />
        <!-- 检测空闲是否开启 -->
        <property name="testWhileIdle" value="true" />
        <!-- 这里建议配置为TRUE,防止取到的连接不可用 -->
        <property name="testOnBorrow" value="true" />
        <property name="testOnReturn" value="false" />
        <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
        <property name="poolPreparedStatements" value="true" />
        <property name="maxPoolPreparedStatementPerConnectionSize" value="50" />
        <!-- 这里配置提交方式,默认就是TRUE,可以不用配置 -->
        <property name="defaultAutoCommit" value="true" />
        <!-- 验证连接有效与否的SQL,不同的数据配置不同  mysql:select 1  ;oracle : select 1 from dual -->
        <property name="validationQuery" value="select 1 from dual" />
        <property name="filters" value="wall,stat" />
        <property name="proxyFilters">
            <list>
                <ref bean="logFilter" />
                <ref bean="stat-filter" />
            </list>
        </property>
    </bean>

    <!-- 慢SQL记录 -->
    <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
        <!-- 慢sql时间设置,即执行时间大于50毫秒的都是慢sql -->
        <property name="slowSqlMillis" value="50"/>
        <property name="logSlowSql" value="true"/>
    </bean>
    <!-- 启用慢sql日志记录时,需要引入slf4j日志包 -->
    <bean id="logFilter" class="com.alibaba.druid.filter.logging.Slf4jLogFilter">
        <property name="dataSourceLogEnabled" value="true" />
        <property name="statementExecutableSqlLogEnable" value="true" />
    </bean>
    <!-- spring和mybatis完美整合,不需要mybatis的配置映射文件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- ref指向数据源配置id -->
        <property name="dataSource" ref="dataSource" />
        <!-- 自动扫描包中的类生成别名,如:com.a.User包 别名可以是User或user -->
        <property name="typeAliasesPackage" value="com.ynu.ssmdemo" />
        <!-- 自动扫描mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:com/ynu/ssmdemo/mybatis/dao/**/*.xml"></property>
    </bean>
  1. O segundo motivo: o arquivo de configuração MyBatis não é carregado no
    método SpringApplication Modification: abra o arquivo web.xml e adicione o ouvinte de inicialização SpringContext
    <!-- 配置SpringMVC容器加载时的初始化参数 -->
    <context-param>
        <!-- 加载mybatis配置文件 -->
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:mybatis.xml</param-value>
    </context-param>
    <!-- 能够将ServletContext读取的内容加载到SpringMVC的application对象中 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    

Os dois métodos acima podem resolver a maioria dos problemas.

Obrigado a todos, se vocês gostarem, por favor, dêem-me um joinha e muito apoio.Continuarei a publicar o conteúdo do curso de desenvolvimento Java full-stack, todos ~ kowtow

Acho que você gosta

Origin blog.csdn.net/gjb760662328/article/details/129176079
Recomendado
Clasificación