1.3 配置文件中 配置数据源(///中间省略了localhost:3306)4.0.0 com.cyl springboot-02 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-parent 2.4.7 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java org.projectlombok lombok provided springboot02 org.springframework.boot spring-boot-maven-plugin
srcmainresourcesapplication.properties
server.port=8000 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # 三个斜杆表示省略了部分,同:jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC spring.datasource.url=jdbc:mysql:///mydb?serverTimezone=UTC spring.datasource.username=root spring.datasource.password=1.4 启动类中配置控制层
package com.cyl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.sql.DataSource;
@SpringBootApplication
public class BootApp {
public static void main(String[] args) {
SpringApplication.run(BootApp.class,args);
}
@RestController
public class TestController{
@Autowired
DataSource dataSource;
@GetMapping("/test")
public Object test(){
return dataSource.getClass().getName();
}
}
}
二、Spring Boot中使用默认数据源
- 数据源作用
配置数据库连接参数
可以提前创建数据库连接,减少了创建连接的开销 - Spring Boot 1.x 默认数据源是tomcat-jdbc
- Spring Boot 2.x 默认数据源是 HikariCP,又叫做光
- Spring Boot整合默认数据源的Maven依赖: spring-boot-starter-jdbc
- 虽然能自动创建数据源,但是数据源连接参数需要用户提供
- 运行项目,输入正确url值
- Spring官方没有提供与MyBatis整合的starter依赖
- MyBatis官方提供了一个starter依赖整合Spring Boot的包
- Maven依赖
org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.1
- 最小配置
在application.properties中配置mapperLocations
mybatis.mapper-locations=classpath:mapper/*.xml
在启动类上使用@MapperScan注解
- Spring官方没有提供与PageHelper整合的starter依赖
- PageHelper官方提供了一个starter依赖整合Spring Boot
- Maven依赖
五、开始整合 5.1 导入MyBatis和PageHelper两个整合依赖 5.2 MyBatia相关配置com.github.pagehelper pagehelper-spring-boot-starter 1.2.13
srcmainresourcesapplication.properties
mybatis.mapper-locations=classpath:mapper/*.xml
srcmainjavacometoakBootApp.java
@MapperScan(basePackages = "com.cyl.mapper")5.3 编写代码
- 实体类
srcmainjavacometoakentityUser.java
package com.cyl.entity;
import lombok.Data;
@Data
public class User {
private Integer id;
private String name;
private String password;
private String email;
private String hobbies;
private String createTime;
}
- mapper接口
srcmainjavacometoakmapperUserMapper.java
package com.cyl.mapper;
import com.cyl.entity.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserMapper {
List getUser(@Param("name") String name);
}
- mapper映射文件
srcmainresourcesmapperUserMapper.xml
select id, name, email, age, hobbies, create_time as createTime from tb_user AND name like concat(#{name},'%')
- 分页 业务对象VO
package com.cyl.vo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; @Data @NoArgsConstructor @AllArgsConstructor public class PageVO{ private Integer pageNumber; private Integer pageSize; private List rows; private Long total; }
- 控制层
srcmainjavacometoakcontrollerUserController.java
package com.etoak.controller;
import com.etoak.entity.User;
import com.etoak.mapper.UserMapper;
import com.etoak.vo.PageVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserMapper userMapper;
@GetMapping("/list")
public PageVO getUser(@RequestParam(required = false,defaultValue = "1") int pageNumber,
@RequestParam(required = false,defaultValue = "10") int pageSize,
String name){
//设置分页条件
PageHelper.startPage(pageNumber, pageSize);
//查询用户列表
List userList = userMapper.getUser(name);
//插件PageInfo
PageInfo pageInfo = new PageInfo<>(userList);
//创建PageVO
PageVO pageVO = new PageVO<>(pageInfo.getPageNum(),
pageInfo.getSize(),
userList,
pageInfo.getTotal());
return pageVO;
}
}
5.4 启动项目,输入正确url
此处我安装了在谷歌浏览器中安装了可以 json 数据化的插件,想了解请戳这里



