引言
本文主要在Spring Boot 基础项目的基础上,添加 Mysql 、MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作。
系列文档目录
Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置
创建数据表
这个过程就暂时省略了。
搭建 MyBatis
修改pom.xml,添加一下依赖
org.mybatis.spring.boot
mybatis-spring-boot-starter
${mybatis.version}
mysql
mysql-connector-java
${mysql.version}
修改配置文件application.yml
添加数据库连接
spring:
datasource:
url: jdbc:mysql://******:3306/***
username: ********
password: ********
driver-class-name: com.mysql.jdbc.Driver
代码实现
配置完,基本信息后,接下来就是代码实现方式
1.1 添加服务层接口 Dao
packagecom.springboot.dao;importcom.springboot.entity.Church;importorg.apache.ibatis.annotations.Mapper;importorg.apache.ibatis.annotations.Select;importjava.util.List;
@Mapperpublic interfaceChurchDao {/*** 获取指定教会/团契信息
*@paramchurchId 教会/团契标识
*@return教会/团契对象*/@Select("SELECT * FROM Church WHERE ChurchId = #{churchId}")
Church get(String churchId);/*** 获取教会/团契列表
*@return教会/团契列表*/@Select("SELECT * FROM Church")
Listlist();
}
View Code
1.2 添加服务层接口的实现(即业务逻辑层)
packagecom.springboot.service;importcom.springboot.dao.ChurchDao;importcom.springboot.entity.Church;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importjava.util.List;
@Servicepublic class ChurchService implementsChurchDao {
@AutowiredprivateChurchDao churchDao;/*** 获取指定教会/团契信息
*@paramchurchId 教会标识
*@return教会/团契信息*/
publicChurch get(String churchId) {returnchurchDao.get(churchId);
}/*** 获取教会/团契列表
*@return教会/团契列表*/
public Listlist() {returnchurchDao.list();
}
}
View Code
上述代码中使用到了一些注解,我们来看下这些注解表示什么意思。
@Autowired
@Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。当然,getter看个人需求,如果私有属性需要对外提供的话,应当予以保留。
当Spring发现@Autowired注解时,将自动在代码上下文中找到和其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方去。
当@Autowired进行接口注入,如果实现类有多个该怎么办?此时可以使用@Qualifier注解,如:@Qualifier("接口实现类的类名")
@Service
@Service注解,我们在代码中看到它带了一个名称areaService,如果只有一个类实现了AreaService接口的话,你不带名称也是可以的,但是如果有多个类实现了AreaService接口,那么你就需要通过一个名称来进行区分。
@Override
Java SE5新增加@Override注解,它并不是关键字,但是可以把它当作关键字使用。当你想要覆写(重写)某个方法时,可以选择添加这个注解,
1.3 添加控制器ChurchController
packagecom.springboot.controller;importcom.springboot.entity.Church;importcom.springboot.service.ChurchService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.RestController;importjava.util.List;
@RestController
@RequestMapping("/church")public classChurchController {
@AutowiredprivateChurchService churchService;//获取指定教会/团契信息
@RequestMapping(value = "get", method =RequestMethod.GET)public String getChurch(@RequestParam("id") String churchId) {
Church church=churchService.get(churchId);returnchurch.toString();
}//获取教会/团契列表
@RequestMapping(value = "list", method =RequestMethod.GET)public Listlist() {returnchurchService.list();
}
}
View Code
分页控件的配置
1. 修改pom.xml,添加依赖
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.5
2. 修改配置文件,添加基本配置
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count==countSql
page-size-zero: true
3. 代码实现
根据不同的需求,返回的分页对象PageInfo,可以输出不同的对象结构。
/**
* 分页获取教会/团契列表
* @param page 当前页
* @param pageSize 每页显示数
* @return 教会/团契列表
*/
public PageInfo list(int page, int pageSize) {
PageHelper.startPage(page, pageSize);
List list = churchDao.list();
return new PageInfo<>(list);
}