SpringBoot整合mybatis的两种方式

SpringBoot整合mybatis的两种方式

简单方法

1.定义实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    Integer id;
    String name;
    String gender;
    String address;
}

2.定义接口 在接口中使用注解实现SQL语句

@Mapper
public interface UserMapper {
    @Select("select * from student_info")
    List<User> getAll();

    @Select("select * from student_info where id=#{id}")
    User getById(Integer id);
}

3.定义service层和controller层调用

@Service
public class UserService {
    @Autowired
    UserMapper userMapper;

    public List<User> getAllUser(){
        return userMapper.getAll();
    }

    public User getUserById(Integer id){
        return userMapper.getById(id);
    }
}

@RestController
public class UserController {
    @Autowired
    UserService userService;

    @GetMapping("/user/all")
    List<User> getAllUser(){
        return userService.getAllUser();
    }

    @GetMapping("/user/{id}")
    User getUser(@PathVariable("id") Integer id){
        return userService.getUserById(id);
    }
}

复杂方法

1.定义实体类

@Data
public class Product {
    Integer id;
    String name;
    Double price;
    String description;
}

2.定义接口

@Mapper
public interface ProductMapper {
    List<Product> getAllProduct();
}

3.定义相应的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.lp.student.mapper.ProductMapper">
    <resultMap id="BaseResultMap" type="com.lp.student.entity.Product">
        <result column="id" jdbcType="INTEGER" property="id"/>
        <result column="name" jdbcType="VARCHAR" property="name"/>
        <result column="price" jdbcType="DOUBLE" property="price"/>
        <result column="description" jdbcType="VARCHAR" property="description"/>
    </resultMap>
    <select id="getAllProduct" resultType="com.lp.student.entity.Product">
        select * from product;
    </select>
</mapper>

在application.yaml中定义包扫描的位置

mybatis:
  mapper-locations: classpath*:/mapper/*Mapper.xml

在主启动类上加上注解 开启扫描@MapperScan("com.lp.student.mapper")

@MapperScan("com.lp.student.mapper")
@SpringBootApplication
public class StudentApplication {

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

}

4.定义service层和controller层进行调用

@Service
public class ProductServiceImpl implements ProductService {
    @Autowired
    ProductMapper productMapper;

    @Override
    public List<Product> getAllProduct() {
        return productMapper.getAllProduct();
    }
}

@RestController
public class ProductController {
    @Autowired
    ProductService productService;

    @GetMapping("/product/all")
    List<Product> getAllProduct(){
        return productService.getAllProduct();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值