# Mapper及自定义

如果您的mapper.xml文件放置于src下的mapper接口同目录下,需要配置编译包含该路径下的xml文件。具体参考如下:

  • Maven设置
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.dtd</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>
1
2
3
4
5
6
7
8
9
10
11
12
  • Gradle设置
sourceSets {
    main {
        resources {
            srcDirs "src/main/java"
            include '**/*.xml'
            include '**/*.dtd'
            include '**/*.class'
        }
        resources {
            srcDirs "src/main/resources"
            include '**'
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# Mapper类

Mapper类需要继承diboot-core中的BaseCrudMapper基础类,并传入相对应的实体类,如:

import com.diboot.core.mapper.BaseCrudMapper;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface DemoMapper extends BaseCrudMapper<Demo> {
}
1
2
3
4
5
6

# Mapper.xml文件

默认的Mapper.xml文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "./mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.DemoMapper">

</mapper>
1
2
3
4
5

# 自定义Mapper接口

自定义Mapper接口使用Mybatis处理方式,增加mapper接口的处理方案,如:

import com.diboot.core.mapper.BaseCrudMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface DemoMapper extends BaseCrudMapper<Demo> {
    int forceDeleteEntities(@Param("name") String name);
}
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "./mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.DemoMapper">
    
    <update id="forceDeleteEntities" parameterType="String">
        DELETE FROM demo WHERE name=#{name}
    </update>
    
</mapper>
1
2
3
4
5
6
7
8
9