MyBatis能够非常灵活地实现动态SQL,可以使用XML或注解来配置和映射原生信息,能够轻松地将Java的POJO(Plain Ordinary Java Object,普通的Java对象)与数据库中的表和字段进行映射关联。
MyBatis-Plus是一个 MyBatis 的增强工具,在 MyBatis 的基础上做了增强,简化了开发。

Mybits使用
创建项目


添加依赖
<!--mybatis-plus 依赖-->
<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>
<!--druid 数据连接池 依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.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/spring??AllowPublicKeyRetrieval=True
spring.datasource.username=root
spring.datasource.password=root
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
创建包



package com.example.mpdemo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author Fxdll
* @Date 2024/5/4 22:52
* @PackageName:com.example.mpdemo.controller
* @ClassName: UserController
* @Description: TODO
* @Version 1.0
*/
@RestController
public class UserController {
@GetMapping("/user")
public String query() {
return "user list";
}
}
创建mapper

创建User实体类,一定要有Getter,Setter方法。
alt+insert


再加上tostring
package com.example.mpdemo.entity;
/**
* @Author Fxdll
* @Date 2024/5/4 23:11
* @PackageName:com.example.mpdemo.entity
* @ClassName: User
* @Description: TODO
* @Version 1.0
*/
public class User {
private int id;
private String username;
private String password;
private String birthday;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", birthday='" + birthday + '\'' +
'}';
}
}
创建Mapper接口,实现动态SQL。
package com.example.mpdemo.mapper;
import com.example.mpdemo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @Author Fxdll
* @Date 2024/5/4 22:54
* @PackageName:com.example.mpdemo.mapper
* @ClassName: UserMapper
* @Description: TODO
* @Version 1.0
*/
@Mapper
public interface UserMapper {
//查询所有用户
@Select("select * from user")
public List<User> find();
}
最后在路由中调用
注入usermapper
@Autowired private UserMapper userMapper;
@RestController
public class mapper {
@Autowired
UserMapper userMapper;
@GetMapping("/m1")
public String m1(){
List<User> users = userMapper.find();
System.out.println(users);
return "yes";
}
}
如果要返回json 则
package com.example.mpdemo.controller;
import com.example.mpdemo.entity.User;
import com.example.mpdemo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author Fxdll
* @Date 2024/5/4 22:52
* @PackageName:com.example.mpdemo.controller
* @ClassName: UserController
* @Description: TODO
* @Version 1.0
*/
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/user")
public List query() {
List<User> list = userMapper.find();
System.out.println(list);
return list;
}
}
MybitsPlugs使用

添加依赖,创建实体类都是一样的。
创建Mapper,只需要直接继承BaseMapper,便可拥有一些基础的操作。
@Mapper
public interface UserMapper extends BaseMapper<User> {}
@TableName,当表名与实体类名称不一致时,可以使用@TableName注解进行关联。 @TableField,当表中字段名称与实体类属性不一致时,使用@TableField进行关联 @TableId,用于标记表中的主键字段,MybatisPlus也提供了主键生成策略