searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Mybatis-Plus实战一

2024-05-29 02:47:10
3
0

一、创建工程

1. 创建springboot 项目:登录官网创建项目,springboot 版本和java版本参考如下图。

 

2.配置pom.xml

mysql 依赖的版本根据自己选择的mysql 版本进行选择,下图配置中的mysql 版本主要是适配mac 版本安装的mysql 版本。

                <dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.33</version>
		</dependency>
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.3.2</version>
		</dependency>

3. 创建数据库 & 表: user

 

4. 添加mysql 和 mybatis-plus 配置。具体添加文件:resources文件夹下的properties文件,也可以替换成yml 文件。

spring.profiles.active=dev
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus_test
spring.datasource.username=xxx
spring.datasource.password=xxxx
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
logging.level.com.lucifer.springboot.cache.mapper=debug
server.port=8080
mybatis-plus.mapper-locations=classpath:mapper/*.xml
logging.file.name=service.log

二、开始设计&coding

2.1 demo: 测试select 

1. 首先创建表的实体类:

package com.example.demo.entity;

public class User {
    private  Long id;
    private String name;
    private String password;
    private Integer age;
    private String phone;
}

2.创建Dao 接口:注意添加@Mapper 注解,以便Dao接口可以被容器扫描到

package com.example.demo.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserDao extends BaseMapper<User> {
}

3.编写测试类

package com.example.demo;

import com.example.demo.dao.UserDao;
import com.example.demo.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class DemoApplicationTests {

	@Autowired
	private UserDao userDao;

	@Test
	void contextLoads() {
	}

	@Test
	public void testGetAll(){
		List<User> userList = userDao.selectList(null);
		System.out.println(userList);
	}
}

2.2 常用select 接口,参考官网

2.3 插入

@Test
	public void testInsert(){
		User user = new User();
		user.setPassword("duedue22@@#");
		user.setAge(13);
		user.setName("E");
		user.setPhone("123456");
		userDao.insert(user);
	}

insert 之后主键 过长

 

BaseMapper类中有很多基础的CRUD类型的方法可供使用,具体参考官网API.

2.4 分页查询

	@Test
	public void testSelectPage(){
		IPage<User> page = new Page<>(1,2);
		userDao.selectPage(page, null);
		System.out.println("页数:" + page.getPages());
		System.out.println("当前页:"+page.getCurrent());
		System.out.println("每页大小:"+page.getSize());
		System.out.println("record:"+page.getRecords());
	}

上述分页功能不生效(可以通过命令行输出结果中的sql语句是否带limit 关键字),原因缺少如下的配置:

package com.example.demo.configuration;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();

    }
}

高级分页查询可以看官网的插件。

2.5 条件查询

通过QueryWrapper 来进行查询

	@Test
	public void testQueryWrapper(){
		QueryWrapper<User> queryWrapper = new QueryWrapper<>();
		queryWrapper.ge("age",10);
		List<User> userList = userDao.selectList(queryWrapper);
		System.out.println(userList);
	}

0条评论
0 / 1000
姜****华
4文章数
1粉丝数
姜****华
4 文章 | 1 粉丝
姜****华
4文章数
1粉丝数
姜****华
4 文章 | 1 粉丝
原创

Mybatis-Plus实战一

2024-05-29 02:47:10
3
0

一、创建工程

1. 创建springboot 项目:登录官网创建项目,springboot 版本和java版本参考如下图。

 

2.配置pom.xml

mysql 依赖的版本根据自己选择的mysql 版本进行选择,下图配置中的mysql 版本主要是适配mac 版本安装的mysql 版本。

                <dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.33</version>
		</dependency>
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.3.2</version>
		</dependency>

3. 创建数据库 & 表: user

 

4. 添加mysql 和 mybatis-plus 配置。具体添加文件:resources文件夹下的properties文件,也可以替换成yml 文件。

spring.profiles.active=dev
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus_test
spring.datasource.username=xxx
spring.datasource.password=xxxx
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
logging.level.com.lucifer.springboot.cache.mapper=debug
server.port=8080
mybatis-plus.mapper-locations=classpath:mapper/*.xml
logging.file.name=service.log

二、开始设计&coding

2.1 demo: 测试select 

1. 首先创建表的实体类:

package com.example.demo.entity;

public class User {
    private  Long id;
    private String name;
    private String password;
    private Integer age;
    private String phone;
}

2.创建Dao 接口:注意添加@Mapper 注解,以便Dao接口可以被容器扫描到

package com.example.demo.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserDao extends BaseMapper<User> {
}

3.编写测试类

package com.example.demo;

import com.example.demo.dao.UserDao;
import com.example.demo.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class DemoApplicationTests {

	@Autowired
	private UserDao userDao;

	@Test
	void contextLoads() {
	}

	@Test
	public void testGetAll(){
		List<User> userList = userDao.selectList(null);
		System.out.println(userList);
	}
}

2.2 常用select 接口,参考官网

2.3 插入

@Test
	public void testInsert(){
		User user = new User();
		user.setPassword("duedue22@@#");
		user.setAge(13);
		user.setName("E");
		user.setPhone("123456");
		userDao.insert(user);
	}

insert 之后主键 过长

 

BaseMapper类中有很多基础的CRUD类型的方法可供使用,具体参考官网API.

2.4 分页查询

	@Test
	public void testSelectPage(){
		IPage<User> page = new Page<>(1,2);
		userDao.selectPage(page, null);
		System.out.println("页数:" + page.getPages());
		System.out.println("当前页:"+page.getCurrent());
		System.out.println("每页大小:"+page.getSize());
		System.out.println("record:"+page.getRecords());
	}

上述分页功能不生效(可以通过命令行输出结果中的sql语句是否带limit 关键字),原因缺少如下的配置:

package com.example.demo.configuration;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();

    }
}

高级分页查询可以看官网的插件。

2.5 条件查询

通过QueryWrapper 来进行查询

	@Test
	public void testQueryWrapper(){
		QueryWrapper<User> queryWrapper = new QueryWrapper<>();
		queryWrapper.ge("age",10);
		List<User> userList = userDao.selectList(queryWrapper);
		System.out.println(userList);
	}

文章来自个人专栏
Java-SpringBoot开发
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0