6.MybatisPlus快速上手.pptx
ORM介绍
MyBatis-Plus介绍
MyBatis图标是红色的,MyBatis-Plus的图标是蓝色的
添加依赖:
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency>
<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.1.20</version> </dependency>
|
做一些全局配置:
src/main/resources/application.properties:
1 2 3 4 5 6 7 8 9
| # 连接池配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql: spring.datasource.username=root spring.datasource.password=12345678 # 指定日志格式 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl server.port=8088
|
新建一个mapper目录,数据库相关的操作都放到下面
添加@MapperScan注解,映射数据库。告诉sb扫描什么包
src/main/java/com/example/mpdemo/MpdemoApplication.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| package com.example.mpdemo;
import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication @MapperScan("com.example.mpdemo.mapper") public class MpdemoApplication {
public static void main(String[] args) { SpringApplication.run(MpdemoApplication.class, args); }
}
|
MyBatis-Plus CRUD操作
新建一张t_user表:
1 2 3 4 5 6 7 8 9 10 11
| create table t_user ( id int auto_increment primary key, username varchar(255) null, birthday varchar(255) null, password varchar(255) null, constraint user_id_uindex unique (id) );
|
并写入几条数据
创建一个User类,
src/main/java/com/example/mpdemo/entity/User.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| package com.example.mpdemo.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName;
import java.util.List;
@TableName("t_user") public class User { @TableId(type = IdType.AUTO) private int id; private String username; private String password; private String birthday;
@TableField(exist = false) private List<Order> orders;
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; }
public List<Order> getOrders() { return orders; }
public void setOrders(List<Order> orders) { this.orders = orders; }
@Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + ", birthday='" + birthday + '\'' + ", orders=" + orders + '}'; } }
|
src/main/java/com/example/mpdemo/mapper/UserMapper.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| package com.example.mpdemo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.mpdemo.entity.User; import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper public interface UserMapper extends BaseMapper<User> {
@Select("select * from user") public List<User> findShuang();
@Select("select * from t_user where id = #{id}") User selectById(int id);
@Select("select * from t_user") @Results( { @Result(column = "id",property = "id"), @Result(column = "username",property = "username"), @Result(column = "password",property = "password"), @Result(column = "birthday",property = "birthday"), @Result(column = "id",property = "orders",javaType = List.class, many=@Many(select = "com.example.mpdemo.mapper.OrderMapper.selectByUid") ) } ) List<User> selectAllUserAndOrders(); }
|
src/main/java/com/example/mpdemo/controller/UserContoller.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| package com.example.mpdemo.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.*;
import java.util.List;
@RestController @CrossOrigin public class UserContoller {
@Autowired UserMapper userMapper;
@GetMapping("/user") public List<User> findShuang(){ return userMapper.findShuang(); }
@GetMapping("/user/findAll") public List<User> find(){ return userMapper.selectAllUserAndOrders(); }
@GetMapping("/user/find") public List<User> findByCond(){ QueryWrapper<User> queryWrapper = new QueryWrapper(); queryWrapper.eq("username","杨玉环"); return userMapper.selectList(queryWrapper); }
@GetMapping("/user/findByPage") public IPage findByPage(){ Page<User> page = new Page<>(0,2); IPage iPage = userMapper.selectPage(page,null); return iPage; }
@PostMapping("/user") public String save(User user){ int r= userMapper.insert(user); if(r > 0){ return "插入成功"; }else{ return "插入失败"; } } }
|
MyBatis-Plus文档
mybatis-plus
mybatis-plus-doc
多表查询及分页查询
7.多表查询及分页查询.pptx
多表查询:
再新建一张 t_order表:
1 2 3 4 5 6 7 8 9 10 11
| create table t_order ( id int auto_increment primary key, order_time varchar(255) null, total varchar(255) null, uid int null, constraint t_order_id_uindex unique (id) );
|
@Result是给每一个字段赋值,前面是表里面的字段,后面是类里面的字段
条件查询:
QueryWrapper
AbstractWrapper
分页:
定义一个配置类,只需要告诉数据库类型
定义了一个分页拦截器
src/main/java/com/example/mpdemo/config/MyBatisPlusConfig.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package com.example.mpdemo.config;
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;
@Configuration public class MyBatisPlusConfig { @Bean public MybatisPlusInterceptor paginationInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); PaginationInnerInterceptor paginationInterceptor = new PaginationInnerInterceptor(DbType.MYSQL); interceptor.addInnerInterceptor(paginationInterceptor); return interceptor;
} }
|
原文链接: https://dashen.tech/2012/11/13/SpringBoot操作数据库/
版权声明: 转载请注明出处.