Springboot整合mybatis

工程简介

  • 学习springboot 整合mybatis连接mysql数据库

准备工作

  • 使用docker容器运行mysql镜像,建立数据库表数据
    • 拉取mysql最新镜像:
      docker pull mysql:latest
    
    • 运行mysql镜像:
      docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
    
    • 建立数据表
    create table user(
    id INT UNSIGNED auto_increment,
    username varchar(20) not null,
    password varchar(30) not null,
    age INT not null,
    primary key(id)
    )charset=utf8;
    

详细流程

  • 引入mybatis
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

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

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
  • 配置数据库连接信息
spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/mysql?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
 
  • 编写表对应的实体类
public class MyUser {
  private int id;
  private String username;
  private String password;
  private int age;
  //get set
}
  • 编写DAO层MAPPER
@Mapper
@Repository
public interface MyUserMapper {

  List<MyUser> getmyusers();
  MyUser       getmyuser(int id);
}
  • 在xml中配置 MyUserMapper,MyUserMapper.xml放在resources.mapping下,在yaml文件中配置该路径
mybatis:
  mapper-locations: classpath:mapping/*Mapper.xml
<mapper namespace="com.example.mybatis.mapper.MyUserMapper">
  <select id="getmyusers" resultType="com.example.mybatis.pojo.MyUser">
    select * from myuser;
  </select>
  <select id="getmyuser" resultType="com.example.mybatis.pojo.MyUser" parameterType="int">
    select * from myuser where id = #{id};
  </select>
</mapper>
  • servie层即可直接使用注入好的MyUserMapper,这里比较懒,直接在controller调用了:
@RestController
public class MyUserController {
  @Autowired
  public MyUserMapper myUserMapper;

  @RequestMapping("/getmyusers")
  public List<MyUser> getmyusers(){
    return myUserMapper.getmyusers();
  }

  @RequestMapping("/getmyuser/{id}")
  public MyUser getmyusers(@PathVariable int id){
    return myUserMapper.getmyuser(id);
  }
}

项目属性结构:

├─java
│  └─com
│      └─example
│          └─mybatis
│              │  MybatisApplication.java
│              │
│              ├─controller
│              │      MyUserController.java
│              │
│              ├─mapper
│              │      MyUserMapper.java
│              │
│              ├─pojo
│              │      MyUser.java
│              │
│              └─service
│                      AsyncService.java
│                      ScheduleService.java
│
└─resources
    │  application.yaml
    │  banner.txt
    │
    ├─mapping
    │      MyUserMapper.xml
    │
    ├─static
    └─templates
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值