在学习任何一个后端技术,如果不让数据库参与进来,那只能说在学习过程中都不算完整的。下面就简单的使用Spring Boot链接MySQL数据库。该例子中没有使用其他的持久化框架,只是使用到了Spring自带的JdbcTemplate。
1、引入MySQL依赖
<!--添加MySql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2、引入Spring JDBC依赖
<!--添加JDBC依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
3、配置MySQL链接
属性配置文件:
mysql.url=jdbc:mysql://127.0.0.1:3306/tenghu
mysql.username=root
mysql.password=xiaohu
SpringBoot配置文件:
server:
port: ${rest.port}
context-path: /sbm/
tomcat:
uri-encoding: UTF-8
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: ${mysql.url}
username: ${mysql.username}
password: ${mysql.password}
4、创建Service类
/**
* 客户信息服务实现类
* Created by Arvin on 2017/12/8.
*/
@Service
public class CusBaseInfoServiceImpl implements CusBaseInfoService{
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<CusBaseInfo> getAllCusBaseInfo() {
//查询客户信息
List<Map<String,Object>> list=jdbcTemplate.queryForList("select * from cus_base_info");
List<CusBaseInfo> cusBaseInfoList=new ArrayList<>();
for (Map<String,Object> map:list ) {
CusBaseInfo cusBaseInfo=new CusBaseInfo();
//客户ID
cusBaseInfo.setCusId(map.get("CUS_ID").toString());
//客户编码
cusBaseInfo.setCusCode(map.get("CUS_CODE").toString());
//客户名称
cusBaseInfo.setCusName(map.get("CUS_NAME").toString());
//客户简称
cusBaseInfo.setCusAbbr(map.get("CUS_ABBR").toString());
//客户地址
cusBaseInfo.setAddress(map.get("ADDRESS").toString());
cusBaseInfoList.add(cusBaseInfo);
}
return cusBaseInfoList;
}
@Override
public CusBaseInfo saveCusBaseInfo(CusBaseInfo cusBaseInfo) {
cusBaseInfo.setCusId(StringUtils.getUUID());
String sql="insert into cus_base_info(cus_id,cus_code,cus_name,cus_abbr,address) values(?,?,?,?,?)";
jdbcTemplate.update(sql,new Object[]{cusBaseInfo.getCusId(),
cusBaseInfo.getCusCode(),
cusBaseInfo.getCusName(),
cusBaseInfo.getCusAbbr(),
cusBaseInfo.getAddress()},new int[]{Types.VARCHAR,Types.VARCHAR,Types.VARCHAR,Types.VARCHAR,Types.VARCHAR});
//获取客户信息
return getCusBaseInfoById(cusBaseInfo.getCusId());
}
@Override
public CusBaseInfo getCusBaseInfoById(String cusId) {
Map<String,Object> map=jdbcTemplate.queryForMap("select * from cus_base_info where cus_id = ?",cusId);
CusBaseInfo cusBaseInfo=new CusBaseInfo();
//客户ID
cusBaseInfo.setCusId(map.get("CUS_ID").toString());
//客户编码
cusBaseInfo.setCusCode(map.get("CUS_CODE").toString());
//客户名称
cusBaseInfo.setCusName(map.get("CUS_NAME").toString());
//客户简称
cusBaseInfo.setCusAbbr(map.get("CUS_ABBR").toString());
//客户地址
cusBaseInfo.setAddress(map.get("ADDRESS").toString());
return cusBaseInfo;
}
}
到这里就完成了链接MySql,使用Spring Boot链接MySql就是这么简单,不需要太多的配置。实体类这里就省略了。既然是一个例子,怎能少得了控制类。
5、创建Controller类
/**
* 客户信息控制接口
* Created by Arvin on 2017/12/8.
*/
@RestController
@RequestMapping(value = "/cus")
@Api(value = "客户信息控制接口",description = "客户信息控制接口")
public class CusBaseInfoController {
@Autowired
private CusBaseInfoService cusBaseInfoService;
/**
* 获取所有客户信息
* @return
*/
@RequestMapping(value = "/all",method = RequestMethod.GET)
@ApiOperation(value = "获取所有客户信息",notes = "获取所有有效的客户信息")
public List<CusBaseInfo> getAllCusBaseInfo(){
return cusBaseInfoService.getAllCusBaseInfo();
}
/**
* 保存客户信息
* @param cusBaseInfo
* @return
*/
@RequestMapping(value = "/save",method = RequestMethod.POST)
@ApiOperation(value = "保存客户信息",notes = "保存客户信息")
public CusBaseInfo saveCusBaseInfo(@ApiParam(value = "客户信息",name = "cusBaseInfo",required = true) CusBaseInfo cusBaseInfo){
return cusBaseInfoService.saveCusBaseInfo(cusBaseInfo);
}
/**
* 根据客户ID查询客户信息
* @param cusId
* @return
*/
@RequestMapping(value = "/get/{cusId}",method = RequestMethod.GET)
@ApiOperation(value = "根据客户ID查询客户信息",notes = "根据客户ID查询客户信息")
@ApiImplicitParam(paramType = "path",name = "cusId",value = "客户ID",required = true)
public CusBaseInfo getCusBaseInfoById(@PathVariable String cusId){
return cusBaseInfoService.getCusBaseInfoById(cusId);
}
}
6、打完收工,看效果
启动Spring Boot,访问:http://127.0.0.1:8091/sbm/swagger-ui.html尽情的操作吧。
点击保存接口,来测试下是否保存到数据库。
查看数据库,也可以通过接口查询。
简单的使用SpringBoot链接MySQL例子就完成了,
7、源码下载
完整结果实例可查看:SpringBoot链接MySQL