SpringBoot链接MySQL

在学习任何一个后端技术,如果不让数据库参与进来,那只能说在学习过程中都不算完整的。下面就简单的使用Spring Boot链接MySQL数据库。该例子中没有使用其他的持久化框架,只是使用到了Spring自带的JdbcTemplate。

1、引入MySQL依赖


<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
dependency>

2、引入Spring JDBC依赖


<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-jdbcartifactId>
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 getAllCusBaseInfo() {
        //查询客户信息
        List> list=jdbcTemplate.queryForList("select * from cus_base_info");
        List cusBaseInfoList=new ArrayList<>();
        for (Map 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 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 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_第1张图片
点击保存接口,来测试下是否保存到数据库。
SpringBoot链接MySQL_第2张图片
查看数据库,也可以通过接口查询。
SpringBoot链接MySQL_第3张图片
简单的使用SpringBoot链接MySQL例子就完成了,

7、源码下载

完整结果实例可查看:SpringBoot链接MySQL

你可能感兴趣的:(spring-boot)