pom文件引入
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- springboot-web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
配置文件引入
###datasource
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
### springboot 1.5 使用的是 spring.datasource.driverClassName 来获取驱动地址
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Mapper代码
//@Mapper 可加可不加 不加在启动类中统一扫包@MapperScan(basePackages = "com.xiaoming.mapper")
public interface UserMapper {
/**
* 查询
* @param name
* @return
*/
@Select("SELECT * FROM USER WHERE NAME = #{name}")
User findByName(@Param("name") String name);
/**
* 添加
* @param name
* @param age
* @return
*/
@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")
int insert(@Param("name") String name, @Param("age") Integer age);
}
启动方式
/**
* mybatis 启动方式
* 1.可以在 mapper 层不需要加 mapper 注解。但是一定要在启动类的时候加上 @MapperScan
* 2.在 mybatis 接口加上 @Mapper 注入 mybatis 容器,就不需要在启动类上加上 @MapperScan
*/
@SpringBootApplication
@MapperScan(basePackages = "com.xiaoming.mapper") //通过反射读取该包下所有的类,装入到容器中
public class MyBaitsApp {
public static void main(String[] args) {
SpringApplication.run(MyBaitsApp.class, args);
}
}
Mybatis整合分页插件
pageHelper
PageHelper 是一款好用的开源免费的 Mybatis 第三方物理分页插件
物理分页
支持常见的 12 种数据库。Oracle,MySql,MariaDB,SQLite,DB2,PostgreSQL,SqlServer 等
支持多种分页方式
支持常见的 RowBounds(PageRowBounds),PageHelper.startPage 方法调用,Mapper 接口参数调用
Maven依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- springboot-web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- springboot 整合 pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
配置文件
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
logging.level.com.example.demo.dao=DEBUG
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
pagehelper.page-size-zero=true
Entity层
@Data
public class User {
private Integer id;
private String name;
private Integer age;
}
Mapper层
public interface UserMapper {
@Select("SELECT * FROM USER ")
List<User> findUserList();
}
Service层
**
* springboot 整合 pageHelper
*/
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
/**
*
* @param page 当前页
* @param pageSize 页大小
* @return
*/
public PageInfo<User> findUserList(int page, int pageSize){
//mysql 分页查询 limit oracle 通过 伪列rownum
//pageHelper 帮我们生成分页语句 底层实现原理采用改写 sql 语句
PageHelper.startPage(page, pageSize);
List<User> userList = userMapper.findUserList();
//返回给客户端展示
PageInfo<User> userPageInfo = new PageInfo<>(userList);
return userPageInfo;
}
}
Controller层
@RestController
public class IndexController {
@Autowired
private UserService userService;
@RequestMapping("/findUserList")
public PageInfo<User> findUserList(int page, int size) {
return userService.findUserList(page, size);
}
}
启动项目
@SpringBootApplication
@MapperScan("com.xiaoming.mapper")
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}