工程简介
- 学习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