环境说明:Windows10,STS,MySql,MyBatis-Plus持久层框架
鉴于上篇博客写了Jpa框架,就顺道把MyBatis-Plus的也写了,要是有遇到的朋友可以看看,MyBaits应该都熟悉,MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
官网:点击这里
废话不多说,直接来吧,创建SpringBoot项目操作,可以参考我的上一篇博客,https://blog.csdn.net/Lee_SmallNorth/article/details/95724132,有很详细的过程讲解。
1.pom.xml 添加mybatis-plus,项目右键 Maven--Update Maven
com.baomidou
mybatis-plus-boot-starter
3.1.2
com.h2database
h2
runtime
2.application.yml
#------------------------配置项目启动端口,默认8080-----------------------------
server:
port: 8090
#------------------------MySql配置-----------------------------
spring:
datasource:
url: jdbc:mysql://localhost:3306/aspuser?characterEncoding=utf8&serverTimezone=GMT%2B8
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
3.model.java
package com.portal.model;
import java.io.Serializable;
import java.math.BigDecimal;
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 lombok.Data;
@Data
@TableName("sys_order") //标识你数据库中表名
public class SysOrderModel implements Serializable{
private static final long serialVersionUID = 1L;
//标识主键策略
@TableId(value="id",type=IdType.AUTO)
private Integer id;
/**
* 订单编号
*/
@TableField("order_id")
private String order_id;
/**
* 订单名称
*/
@TableField("order_name")
private String order_name;
/**
* 订单价格
*/
@TableField("order_price")
private BigDecimal order_price;
/**
* 订单类型
*/
@TableField("order_type")
private String order_type;
/**
* 订单状态
*/
@TableField("order_status")
private String order_status;
/**
* 订单数量
*/
@TableField("order_number")
private Integer order_number;
}
4.Dao.java
package com.portal.dao;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.portal.model.SysOrder;
@Mapper
public interface SysOrderDao extends BaseMapper{
}
5.Test.java
MyBatis-Plus有些操作提供了许多方法,可以根据需求选择不同的方法。
package com.portal;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
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.portal.dao.SysOrderDao;
import com.portal.model.SysOrderModel;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootOrderTestApplicationTests {
@Autowired
private SysOrderDao sysdao;
/**
* 保存 insert方法
*/
@Test
public void insert() {
SysOrderModel sModel = new SysOrderModel();
sModel.setOrder_id(UUID.randomUUID().toString());
sModel.setOrder_name("菠萝");
sModel.setOrder_number(200);
BigDecimal bigDecimal = new BigDecimal("4.00");
sModel.setOrder_price(bigDecimal);
sModel.setOrder_status("销售中");
sModel.setOrder_type("水果类");
int insertcount = sysdao.insert(sModel);
if (insertcount > 0) {
System.out.println("插入成功!");
}else {
System.out.println("插入失败!");
}
System.out.println("返回插入的主键:" + sModel.getId());
}
/**
* 查询方法1
*/
@Test
public void selectList()
{
List list = sysdao.selectList(null);
list.forEach(System.out::println);
}
/**
* 查询方法2,通过多个id查询list
*/
@Test
public void selectBatchIds()
{
List idList = new ArrayList<>();
idList.add(1);
idList.add(3);
idList.add(4);
List list = sysdao.selectBatchIds(idList);
list.forEach(System.out::println);
}
/**
* 查询方法3,通过多个条件查询list
*/
@Test
public void selectByMap()
{
Map columnMap = new HashMap<>();
columnMap.put("ordertype", "食品类");
List list = sysdao.selectByMap(columnMap);
list.forEach(System.out::println);
}
/**
* 查询方法4,通过QueryWrapper查询条数
*/
@Test
public void selectCount()
{
int count = sysdao.selectCount(new QueryWrapper().eq("ordertype", "食品类"));
System.out.println(count);
}
/**
* 查询方法5,通过selectMaps查询list