当前位置:   article > 正文

基于SpringBoot2开发WebApi(二)使用MyBatis连接MySQL数据库

基于SpringBoot2开发WebApi(二)使用MyBatis连接MySQL数据库

1.依赖

在pom.xml中引入依赖

  1. <dependency>
  2. <groupId>org.mybatis.spring.boot</groupId>
  3. <artifactId>mybatis-spring-boot-starter</artifactId>
  4. <version>2.1.4</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>mysql</groupId>
  8. <artifactId>mysql-connector-java</artifactId>
  9. <scope>runtime</scope>
  10. </dependency>

2.druid使用

在项目中我们引入了druid用来管理连接数据库的线程池,在pom.xml中引入druid依赖

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid-spring-boot-starter</artifactId>
  4. <version>1.1.9</version>
  5. </dependency>

关于druid还可以进行程序对数据库监控的目的,输入服务地址:http://localhost:8084/druid/datasource.html

3.配置文件

因为我这边为了方便的区分开发环境与测试环境,所以在创建了线上与线下的两个不同的配置文件

分别为:

application-dev.yml(开发环境配置)

application-prod.yml(生产环境配置)

然后在application.yml中方便的进行开发环境与生产环境的切换

开发环境配置

  1. server:
  2. port: 8084
  3. sim:
  4. config:
  5. #定时5分钟同步中移动接口数据
  6. sync300Interval: 300000
  7. #定时1天同步中移动接口数据
  8. sync86400Interval: 86400000
  9. spring:
  10. datasource:
  11. name: mysql_sim
  12. type: com.alibaba.druid.pool.DruidDataSource
  13. #druid相关配置
  14. druid:
  15. #监控统计拦截的filters
  16. filters: stat
  17. driver-class-name: com.mysql.cj.jdbc.Driver
  18. #基本属性
  19. url: jdbc:mysql://192.168.1.39:3306/simmanager?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
  20. username: xxx
  21. password: 123456
  22. #配置初始化大小/最小/最大
  23. initial-size: 1
  24. min-idle: 1
  25. max-active: 20
  26. #获取连接等待超时时间
  27. max-wait: 60000
  28. #间隔多久进行一次检测,检测需要关闭的空闲连接
  29. time-between-eviction-runs-millis: 60000
  30. #一个连接在池中最小生存的时间
  31. min-evictable-idle-time-millis: 300000
  32. validation-query: SELECT 'x'
  33. test-while-idle: true
  34. test-on-borrow: false
  35. test-on-return: false
  36. #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
  37. pool-prepared-statements: false
  38. max-pool-prepared-statement-per-connection-size: 20
  39. mybatis:
  40. mapper-locations: classpath:mapper/*.xml
  41. type-aliases-package: com.iot.sim.model
  42. #MyBatis分页查询插件
  43. pagehelper:
  44. helperDialect: mysql
  45. reasonable: true
  46. supportMethodsArguments: true
  47. params: count=countSql

以上准备工作完成后,后续我们开始编码实施

4.编码实施

首先在启动类里面增加注解@MapperScan("com.iot.simmanager.dao")

作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类

写个获取公司信息的实现示例

model包下增加AdminAgent类

  1. package com.iot.simmanager.model;
  2. import lombok.Data;
  3. import java.io.Serializable;
  4. import java.math.BigInteger;
  5. /**
  6. * @author lenny
  7. */
  8. @Data
  9. public class AdminAgent implements Serializable {
  10. private BigInteger Id;
  11. private String AgentName;
  12. private String AgentCode;
  13. private String Address;
  14. private String Bank;
  15. private String BankNo;
  16. private String Contacts;
  17. private String Phone;
  18. private String Email;
  19. private String Fax;
  20. private String PostCode;
  21. private String AgentGUID;
  22. private String Describe;
  23. private String CreateTime;
  24. private BigInteger Creator;
  25. }

这里用到了@Data注解,需要在pom.xml下进行依赖引入

  1. <dependency>
  2. <groupId>org.projectlombok</groupId>
  3. <artifactId>lombok</artifactId>
  4. <version>1.18.12</version>
  5. </dependency>

dao包下增加AdminAgentDao接口

  1. package com.iot.simmanager.dao;
  2. import com.iot.simmanager.model.AdminAgent;
  3. import java.util.List;
  4. /**
  5. * @author lenny
  6. */
  7. public interface AdminAgentDao {
  8. /**
  9. * 查询公司列表
  10. * @return
  11. */
  12. List<AdminAgent> queryAdminAgentList();
  13. }

service包下增加AdminAgentService

  1. package com.iot.simmanager.service;
  2. import com.iot.simmanager.dao.AdminAgentDao;
  3. import com.iot.simmanager.model.AdminAgent;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. import java.util.List;
  7. /**
  8. * @author lenny
  9. */
  10. @Service
  11. public class AdminAgentService {
  12. @Autowired
  13. private AdminAgentDao adminAgentDao;
  14. /**
  15. * 查询公司列表
  16. * @return
  17. */
  18. public List<AdminAgent> queryAdminAgentList()
  19. {
  20. List<AdminAgent> adminAgentList=adminAgentDao.queryAdminAgentList();
  21. return adminAgentList;
  22. }
  23. }

最后再controller包增加AdminAgentController

  1. package com.iot.simmanager.controller;
  2. import com.iot.simmanager.model.AdminAgent;
  3. import com.iot.simmanager.service.AdminAgentService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.PostMapping;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.bind.annotation.RestController;
  8. import java.util.List;
  9. /**
  10. * @author lenny
  11. */
  12. @RestController
  13. @RequestMapping("/agent")
  14. public class AdminAgentController {
  15. @Autowired
  16. private AdminAgentService adminAgentService;
  17. @PostMapping(value = "queryAdminAgentList")
  18. public List<AdminAgent> queryAdminAgentList(){
  19. try {
  20. List<AdminAgent> adminAgentList = adminAgentService.queryAdminAgentList();
  21. return adminAgentList;
  22. } catch (Exception e) {
  23. e.printStackTrace();
  24. return null;
  25. }
  26. }
  27. }

使用Postman进行接口测试

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/201249
推荐阅读
相关标签
  

闽ICP备14008679号