mybatis简易项目配置

1.pom

    <!--mybatis - https://mybatis.org/mybatis-3/zh/index.html -->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.2</version>
    </dependency>
    <!--通用mapper - https://apidoc.gitee.com/free/Mapper/ -->
    <dependency>
      <groupId>tk.mybatis</groupId>
      <artifactId>mapper-spring-boot-starter</artifactId>
      <version>2.1.5</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>

2.application.yaml

mybatis:
  configuration:
#    开启驼峰
    map-underscore-to-camel-case: true
#  让mybatis自动扫描到自定义POJO
  type-aliases-package: com.livesxu.pojo
#  配置mapper  **:任意多级目录
  mapper-locations: classpath:mappers/**/*.xml

3.配置pojo

//lombok库 帮助主动生成set、get等
@Data
public class MyPojo {

    int id;

    String location;

    int worktime;
}

4.App配置扫描mapper的包

支持通用mapper需要使用对应库下的MapperScan
import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan(value = {"com.livesxu.mapper","com.livesxu.hello.myBatisTest"})
public class App 
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class,args);
    }
}

5.创建mapper接口

public interface MyMapper {

    List<MyPojo> findAll();

    MyPojo findOne();
}
  • -- 通用mapper示例
    {
    通用mapper不需要配置xml,但是pojo需多一些注解标识::比如
    1.对类标识表名@Table(name = "tb_user");
    2.标识主键
    3.标识不持久化
    @Id
    @KeySql(useGeneratedKeys = true)//作为主键自增长
    private int id;

    //瞬时,不作为sql字段持久化
    @Transient
    private String note;

}

import tk.mybatis.mapper.common.Mapper;

public interface UserMapper extends Mapper<User> {
}

6.resources下配置mapper需要的xml

<?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.livesxu.hello.myBatisTest.MyMapper">
    <select id="findOne" resultType="com.livesxu.pojo.MyPojo">
        select * from worker where id=2
    </select>
    <select id="findAll" resultType="com.livesxu.pojo.MyPojo">
        select * from worker
    </select>
<!--    <resultMap id="" type=""-->
<!--    resultMap=""-->
</mapper>

7.测试调用:

@RestController
@RequestMapping("mybt")
public class BatisTest {

    @Autowired
    MyMapper myMapper;

    @RequestMapping("findAll")
    public List<MyPojo> findAllTest() {

        return myMapper.findAll();
    }

    @RequestMapping("findOne")
    public MyPojo findOne() {

        return myMapper.findOne();
    }
}
  • -- 通用mapper可以使用定义好的一些api
@Repository
public class RegisterDaoImpl implements RegisterDao {

    @Autowired
    private UserMapper userMapper;

    @Override
    public void registerUser(User user) {

        userMapper.insert(user);
        //delete...
    }
}

https://mybatis.org/mybatis-3/zh/index.html
https://apidoc.gitee.com/free/Mapper/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容