文章目录
- 一、ORM
- 二、mybatis实际操作
- 三、mybatis-plus
一、ORM
简单来说ORM就是一个能够帮我们把java中Bean类映射到数据库中。
使用mybatis-plus。
- 配置架包
<!-- MyBatisPlus依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 数据连接池增加数据查询效率-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.20</version>
</dependency>
下载以后需要配置application.properties
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url= jdbc:mysql://localhost:3306/"你的数据库名"?useSSL=false&characterEncoding=utf8
spring.datasource.username="你的账号"
spring.datasource.password="你的密码"
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
在启动函数增加注解@MapperScan("Mapper的路径")
相关注解
二、mybatis实际操作
- 首先创建好对应的数据库
create database hello;
CREATE TABLE User (
id INT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
birthday VARCHAR(10) -- 假设日期格式为 YYYY-MM-DD,长度为10
);
INSERT INTO User (id, username, password, birthday) VALUES
(1, 'Alice', 'password123', '1990-01-01'),
(2, 'Bob', 'pass456word', '1992-05-10');
-
在mapper下创建一个基于Bean为主的mapper
接口!
UserMapper
-
在UserMapper里面声明方法。记得加
@Mapper
@Mapper
public interface UserMapper {
//查询所有用户
@Select("select * from user")
public List<User> find();
}
- 在controller写查询接口,其中要使用刚才在UserMapper写好的接口。
//使用Autowired注解注入接口
@Autowired
private UserMapper userMapper;
//使用与数据库字段对应的Bean接受数据User。
@GetMapping("/user")
public List query(){
List<User> list = userMapper.find();
System.out.println(list);
return list;
}
- User的代码
private int id;
private String username;
private String password;
private String birthday;
//get
//set
//使用鼠标右键generate生成
调用我们的写好的query()接口,就能在控制台看到我们的查询结果了。
一些方法的参考
controller文件如下
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/user")
public List query(){
List<User> list = userMapper.find();
System.out.println(list);
return list;
}
@PostMapping("/user/insert")
public String insert(User user){
int i = userMapper.insert(user);
if (i > 0){
return "successful";
}
else{
return "failed";
}
}
@DeleteMapping("/user/delete/{id}")
public String delete(@PathVariable int id){
int j = userMapper.delete(id);
if (j > 0){
return "delete successfully";
}else{
return "delete fail";
}
}
//这个还有点问题,还要改
@PutMapping("/user/update/{id}")
public String update(@PathVariable int id,@PathVariable User user){
System.out.println(id);
int k = userMapper.update(user);
if (k > 0){
return "update successfully";
}else{
return "update fail";
}
}
}
三、mybatis-plus
Mapper文件如下
@Mapper
public interface UserMapper2 extends BaseMapper<User> {
}
Controller文件如下
@RestController
public class UserController2 {
@Autowired
private UserMapper2 userMapper2;
@GetMapping("/user2")
public List query(){
List<User> list= userMapper2.selectList(null);
System.out.println(list);
return list;
}
@PostMapping("user2/insert")
public String insert(User user){
int i = userMapper2.insert(user);
if (i > 0){
return "successful";
}
else{
return "failed";
}
}
}
- 如果Bean名和表明不一致,可以通过增加注解设定对应的表
@TableName
- 指定列自增
- 将Bean类中的属性映射到表列,如果不一致。