springboot系列十三 mybatis 注解和xml2种方式

依赖

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

使用方式 注解和xml

注解方式

配置

#mysql
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
    username: root
    password: root
#mybatis
mybatis:
  type-aliases-package: com.yimingkeji.mybatis.entity

mapper接口

public interface UserMapper {

    @Select("select * from user")
    @Results({
            @Result(property = "phoneNumber", column = "phone_number"),
            @Result(property = "createTime", column = "create_time", javaType = Date.class)
    })
    List<User> findAll();

    @Select("select * from user where id = #{id}")
    User findOne(int id);

    @Insert("insert into user(name, age, phone_number, available, create_time) values (#{name}, #{age}, #{phoneNumber}, #{available}, #{createTime})")
    int add(User user);

    @Update("update user set name=#{name} where id = #{id}")
    int update(User user);

    @Delete("delete from user where id = #{id}")
    int delete(int id);
}

mapper扫描配置

在启动类中添加@MapperScan注解

@SpringBootApplication
@MapperScan(basePackages = {"com.yimingkeji.mybatis.mapper"})//或者每个mapper接口上加 @Mapper 注解
public class MybatisApp {

    public static void main(String[] args) {
        SpringApplication.run(MybatisApp.class, args);
    }
}

测试接口

@RestController
public class UserController1 {

    @Autowired private UserMapper userMapper;

    @GetMapping("user")
    public List<User> list(){
        return userMapper.findAll();
    }

    @GetMapping("user/{id}")
    public User one(@PathVariable int id){
        return userMapper.findOne(id);
    }

    @PostMapping("user")
    public int add(@RequestBody User user){
        return userMapper.add(user);
    }

    @PutMapping("user")
    public int update(@RequestBody User user){
        return userMapper.update(user);
    }

    @DeleteMapping("user/{id}")
    public int del(@PathVariable int id){
        return userMapper.delete(id);
    }
}

xml方式

配置

#mybatis
mybatis:
  type-aliases-package: com.yimingkeji.mybatis.entity
  config-location: classpath:mybatis/config/mybatisConfig.xml
  mapper-locations: classpath:mybatis/mapper/*.xml

启动类mapper扫描

@SpringBootApplication
@MapperScan(basePackages = {"com.yimingkeji.mybatis.mapper", "com.yimingkeji.mybatis.mapper2"})//或者每个mapper接口上加 @Mapper 注解
public class MybatisApp {

    public static void main(String[] args) {
        SpringApplication.run(MybatisApp.class, args);
    }
}

mapper接口和xml配置

public interface UserMapper2 {
    List<User> findAll();
}
<?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.yimingkeji.mybatis.mapper2.UserMapper2">

    <resultMap id="BaseResultMap" type="com.yimingkeji.mybatis.entity.User">
        <id column="id" property="id" />
        <result column="name" property="name"  />
        <result column="age" property="age" />
        <result column="phone_number" property="phoneNumber" />
        <result column="available" property="available" />
        <result column="create_time" property="createTime" />
    </resultMap>

    <select id="findAll" resultMap="BaseResultMap">
        select * from user
    </select>
</mapper>

测试接口

@Autowired private UserMapper2 userMapper2;

@GetMapping("user2")
public List<User> list(){
    return userMapper2.findAll();
}

源码地址

https://gitee.com/yimingkeji/springboot/tree/master/mybatis

转载于:https://my.oschina.net/yimingkeji/blog/2988497

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值