栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MybatisPlus学习笔记(1)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MybatisPlus学习笔记(1)

MybatisPlus学习资料:

  1. [官方文档](MyBatis-Plus (baomidou.com))
  2. 优质博客:学习MyBatis-Plus3这一篇就够了
  3. 教程:
    (1)黑马程序员MybatisPlus深入浅出教程,快速上手Mybatis-Plus
    (2尚硅谷MyBatisPlus教程(mybatis-plus框架精讲)
一、引入依赖及配置 1.主要新增的依赖

    mysql
    mysql-connector-java
    runtime




    org.projectlombok
    lombok
    true


    org.springframework.boot
    spring-boot-starter
    
    
        
            org.springframework.boot
            spring-boot-starter-logging
        
    



    org.slf4j
    slf4j-log4j12




    org.springframework.boot
    spring-boot-starter-test


    junit
    junit
    4.12




    com.baomidou
    mybatis-plus-boot-starter
    3.4.3

2.编写配置

(1)log4j.properties

log4j.rootLogger=DEBUG,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%t] [%c]-[%p] %m%n

(2)appication.properties

#数据库配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/database_name?
 useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
二、使用mybatis-plus

​ 本次案例测试使用的数据表为

mysql> select *from tb_user;
+----+-----------+----------+--------+------+-----------------+
| id | user_name | password | name   | age  | email           |
+----+-----------+----------+--------+------+-----------------+
|  1 | zhangsan  | 123456   | 张三   |   18 | test1@itcast.cn |
|  2 | lisi      | 123456   | 李四   |   20 | test2@itcast.cn |
|  3 | wangwu    | 123456   | 王五   |   28 | test3@itcast.cn |
|  4 | zhaoliu   | 123456   | 赵六   |   21 | test4@itcast.cn |
|  5 | sunqi     | 123456   | 孙七   |   24 | test5@itcast.cn |
+----+-----------+----------+--------+------+-----------------+
5 rows in set (0.01 sec)
1.编写pojo

在项目文件夹下创建pojo文件夹,用于存放数据表实例。

package com.example.mybatistest.pojo;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User {
    private Long id;
    private String userName;
    private String password;
    private String name;
    private Integer age;
    private String email;
}
2.编写mapper

​ 在项目文件夹下创建mapper文件夹,存储mapper接口

package com.example.mybatistest.mapper;

import com.baomidou.mybatisplus.core.mapper.baseMapper;
import com.example.mybatistest.pojo.User;

public interface UserMapper extends baseMapper {
}
3.编写启动类
package com.example.mybatistest;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.example.mybatistest.mapper")  // 扫描的包对应mapper的package
@SpringBootApplication
public class MybatisTestApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatisTestApplication.class, args);
    }
}
4.编写测试类
package com.example.mybatistest;

import com.example.mybatistest.mapper.UserMapper;
import com.example.mybatistest.pojo.User;
import org.junit.jupiter.api.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 java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MybatisTestApplicationTests {
    @Autowired
    private UserMapper userMapper;  // 此处IDEA可能标红,但不影响后面testSelect方法的测试
    @Test
    public void testSelect(){
        List userList = userMapper.selectList(null);
        for (User user : userList) {
            System.out.println(user);
        }
    }
}

​ 测试结果

[main] [com.example.mybatistest.mapper.UserMapper.selectList]-[DEBUG] <==      Total: 5
[main] [org.mybatis.spring.SqlSessionUtils]-[DEBUG] Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@13e00016]
User(id=1, userName=zhangsan, password=123456, name=张三, age=18, email=test1@itcast.cn)
User(id=2, userName=lisi, password=123456, name=李四, age=20, email=test2@itcast.cn)
User(id=3, userName=wangwu, password=123456, name=王五, age=28, email=test3@itcast.cn)
User(id=4, userName=zhaoliu, password=123456, name=赵六, age=21, email=test4@itcast.cn)
User(id=5, userName=sunqi, password=123456, name=孙七, age=24, email=test5@itcast.cn)
三、通用CRUD 1.插入操作

​ (1)基础语句

int result = mapper.insert(item);

​ (2)新增测试方法

@Test
public void testInsert(){
    User newUser = new User();
    newUser.setAge(20);
    newUser.setUserName("Jason");
    newUser.setEmail("test@mybatis.com");
    newUser.setName("Jason");
    newUser.setPassword("123");
    int result = this.userMapper.insert(newUser);
    System.out.println("result = " + result);
}

​ (3)结果

reuslt = 1

​ 数据表结果

mysql> select *from tb_user;
+---------------------+-----------+----------+--------+------+------------------+
| id                  | user_name | password | name   | age  | email            |
+---------------------+-----------+----------+--------+------+------------------+
|                   1 | zhangsan  | 123456   | 张三   |   18 | test1@itcast.cn  |
|                   2 | lisi      | 123456   | 李四   |   20 | test2@itcast.cn  |
|                   3 | wangwu    | 123456   | 王五   |   28 | test3@itcast.cn  |
|                   4 | zhaoliu   | 123456   | 赵六   |   21 | test4@itcast.cn  |
|                   5 | sunqi     | 123456   | 孙七   |   24 | test5@itcast.cn  |
| 1447068479692804097 | Jason     | 123      | Jason  |   20 | test@mybatis.com |
+---------------------+-----------+----------+--------+------+------------------+
6 rows in set (0.00 sec)

​ 可见id并不是自增,修改pojo中User对象。

package com.example.mybatistest.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String userName;
    private String password;
    private String name;
    private Integer age;
    private String email;
}

2.更新操作

(1)基础语法

int updateById(@Param(Constants.ENTITY) T entity);

(2)测试方法

@Test
public void testUpdateById() {
    User user = new User();
    user.setId(6L); //主键
    user.setAge(21); //更新的字段
    //根据id更新,更新不为null的字段
    this.userMapper.updateById(user);
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/309494.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号