首先创建环境
主要相关依赖 德鲁伊连接池 还有spring-puls
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
配置端口 可以配置80端口
创建数据库实体类 这里注意一个点 desc是一个关键字 所以定义名字的时候不要有冲突 否则就会 查询不到
package com.cong.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("book")
public class Book {
private int id;
private String type;
private String name;
private String descc;
}
创建dao层 使用mybatis - puls
package com.cong.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cong.pojo.Book;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BookMapper extends BaseMapper<Book> {
}
在测试类中测试
@SpringBootTest
class BootDemo07SsmpApplicationTests {
@Autowired
private BookMapper bookMapper;
@Test
void contextLoads() {
Book book = new Book();
book.setDescc("666");
book.setName("666");
book.setType("666");
bookMapper.insert(book);
}
@Test
public void tt() {
Book book = bookMapper.selectById(1);
System.out.println(book);
}
@Test
public void tt1() {
List<Book> books = bookMapper.selectList(null);
for (Book book : books) {
System.out.println(book);
}
}
测试分页查询 功能 首先创建mybatis-puls的分页查询配置类
/*
mybatis-plus 自带的分页查询的配置
*/
@Configuration
public class MPConfig {
@Bean
public MybatisPlusInterceptor interceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
在测试类中配置
//分页查询测试
@Test
public void tt2() {
IPage<Book> iPage=new Page<>(1,3);//查询第一页 每一页显示三条数据
bookMapper.selectPage(iPage,null);
}
有这么多方法 全部测试一下
忘了说我的application.yml的配置了
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssmbuild?serverTimezone=UTC
username: root
password: 111111
#?????
mybatis-plus:
global-config:
db-config:
id-type: auto
#打印日志
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
模糊查询 有一点点小瑕疵
比较厉害的 来了
//上面的那个查询有一点点瑕疵 就是名字打错了 就查不出来
@Test
//按条件查询 或者 模糊查询
public void t31(){
//采用lambda 表达式
String name="java";
LambdaQueryWrapper<Book> bookLambdaQueryWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<Book> like1 = bookLambdaQueryWrapper.like(Book::getName, name);
bookMapper.selectList(like1);//需要一个queryWrapper的东西 所以就创建一个
}
假设传递了一个参数为null 或者空字符串 就完蛋了
所以要解决这个问题 要添加一个判断
LambdaQueryWrapper<Book> like1 =
bookLambdaQueryWrapper.like(name!=null,Book::getName, name);//这里可以写一个条件 就是name不等于空,或者判断这个字符串不为空 String.isNotEmpty(name)
bookMapper.selectList(like1);//需要一个queryWrapper的东西 所以就创建一个