Mybatis-Plus简单入门

Mybatis-Plus简单入门

一,创建项目

开发java使用Mybatis-plus基本上都是项目中使用的,现在一般都用的是springboot,所以先创建一个springboot项目作为基础运行环境。

二,导入maven依赖

如果对项目熟悉导入依赖过程可以跳过;
先导入mybatis-plus-boot-starter依赖

<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.4.2</version>
</dependency>

项目运行还需要mysql导入mysql驱动,数据库连接池等这里使用的是hikari数据库连接池所以导入spring-boot-starter-jdbc依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

然后导入springbootweb,lombok等maven依赖

   <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
    </dependency>

三,配置application.properties

#模块名称
spring.application.name=plus
#访问路径
server.servlet.context-path=/plus
#时间格式化--如果不加此项时间可能查询显示不正常
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
#访问端口
server.port=8848

#------------ mysql配置 -----------
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&autoReconnect=true&useSSL=false&serverTimezone=Hongkon
spring.datasource.username=root
spring.datasource.password=root
#------------hikari 数据库连接池配置-----------
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.connectionTimeout=10000
spring.datasource.hikari.idleTimeout=50000
spring.datasource.hikari.minimumIdle=10
spring.datasource.hikari.maximumPoolSize=10
spring.datasource.hikari.connectionTestQuery=select 1
#可能后续需要手动写sql的情况
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.type-aliases-package=com.example.mybatisplusdemo.entity
mybatis-plus.configuration.map-underscore-to-camel-case=true
mybatis-plus.configuration.default-fetch-size=10
mybatis-plus.configuration.default-statement-timeout=30
#开启sql打印
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#全局逻辑删除字段--需要在对应实体类逻辑删除字段上添加@TableLogic注解才能生效
mybatis-plus.global-config.db-config.logic-delete-field=is_delete
#全局逻辑已删除值
mybatis-plus.global-config.db-config.logic-delete-value=1
#全局逻辑未删除值
mybatis-plus.global-config.db-config.logic-not-delete-value=0

四,编写Mapper层接口

//编写Mapper层接口继承BaseMapper<T>
//T对应数据库表对应实体类并且实体类需要继承Modl<T>
//如果表名称与实体类不同需要使用注解@TableName标注
@Data
@TableName("t_address_book")
public class AddressBook extends Model<AddressBook> {

private static final long serialVersionUID = 1L;

@TableId(value = "id", type = IdType.AUTO)
private Long id;
}


public interface AddressBookDao extends BaseMapper<AddressBook> {

}

五,使用mybatis-plus,Mapper CRUD接口

1,insert

//插入
int insert(T entity);
//在impl中的使用addressBookDao通过@Autowired注入
int insert = addressBookDao.insert(addressBook);

2,update

// 根据 whereWrapper 条件,更新记录
int update(@Param(Constants.ENTITY) T updateEntity,@Param(Constants.WRAPPER) Wrapper<T> whereWrapper);
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);

//在impl中的使用
//根据 whereWrapper 条件,更新记录
QueryWrapper<AddressBook> queryWrapper = new QueryWrapper<>();
              queryWrapper.eq("id",1);
int update = addressBookDao.update(addressBook,queryWrapper
//根据 ID 修改
int updateById = addressBookDao.updateById(addressBook);

3,delete

// 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
// 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 ID 删除
int deleteById(Serializable id);
// 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);

//在impl中的使用
//根据 entity 条件,删除记录
QueryWrapper<AddressBook> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("id",1);
    int delete = addressBookDao.delete(queryWrapper);
 //删除(根据ID 批量删除)
 List<Integer> ids = new ArrayList<>();
    ids.add(1);
    ids.add(2);
    int deleteBatchIds = addressBookDao.deleteBatchIds(ids);
//根据 columnMap 条件,删除记录 map中 key对应数据库字段入入note_tye,value对应值
 Map<String,Object> map = new HashMap<>();
    map.put("note_tye","新");
    int deleteByMap = addressBookDao.deleteByMap(map);

4,select

// 根据 ID 查询
T selectById(Serializable id);
// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 查询(根据ID 批量查询)
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends   Serializable> idList);
// 根据 entity 条件,查询全部记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 查询(根据 columnMap 条件)
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
// 根据 Wrapper 条件,查询全部记录
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 根据 entity 条件,查询全部记录(并翻页)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

//对应impl  1对应pageNum,10对应pageSize
Page<AddressBook> page=new Page<>(1,10);
    QueryWrapper<AddressBook> queryWrappers = new QueryWrapper<>();
    queryWrapper.like("name","绵");
    IPage<AddressBook> addressBookIPage = addressBookDao.selectPage(page,queryWrappers);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值