springboot整合mybatis

本文解决SpringBoot项目中MyBatis的XML映射文件放置于src/main/java目录下导致的问题,通过配置application.properties和maven的pom.xml,确保XML文件能够被正确加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot整合mybatis过程中,想把xml文件和Dao接口文件放到同一个包下,结果报错

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxl.job.executor.mapper.RecordDAO.sum

这种问题大多数情况下先检查xml文件的<mapper namespace=""> 和 <resultMap id="xx" tyep="com.xxl.job..."> 是否配置正确,我今天要说的是另一个问题,正常情况下xml等资源文件要放到resource文件夹下,而我就想放到src/main/java下,所以出现这个问题,maven打包的时候默认只会把resources下的资源文件打进包里,所以想包括src/main/java下的xml文件需要使用<build>标签,解决方案如下,在application.properties文件中指定xml文件所在的path

mybatis.mapper-locations: classpath*:com/xxl/job/executor/mapper/*.xml

然后配置maven的pom.xml 在 <build>里增加<resources>

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>com/xxl/job/executor/mapper/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

下面是整合过程

第一步 引入jar包

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.29</version>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

第二步,配置数据库参数

spring.datasource.url=jdbc:mysql://mysql.xxx.cn:3306/db_name?useSSL=false&characterEncoding=utf8&useTimezone=true&serverTimezone=GMT%2B8
spring.datasource.username=uname
spring.datasource.password=psw
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

配置完成 ,在dao上注解@Mapper

package com.xxl.job.executor.mapper;

import org.apache.ibatis.annotations.Mapper;


/**
 * @author xxx
 * @description //TODO 设计说明
 * @date 19-4-19
 * @copyright 
 */
@Mapper
public interface WechatPayRecordDAO {


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值