当前位置:   article > 正文

SpringBoot——MyBatis整合数据库连接、配置文件方式、注解方式、配置文件+注解方式_mybatis怎么整合数据库

mybatis怎么整合数据库

1.pom.xml

  1. <!-- 连接数据库 -->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-data-jdbc</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>mysql</groupId>
  8. <artifactId>mysql-connector-java</artifactId>
  9. </dependency>
  10. <!-- web开发 -->
  11. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-web</artifactId>
  14. </dependency>
  15. <!-- mybatis整合,包含jdbc包 -->
  16. <dependency>
  17. <groupId>org.mybatis.spring.boot</groupId>
  18. <artifactId>mybatis-spring-boot-starter</artifactId>
  19. <version>2.2.2</version>
  20. </dependency>
  21. <!-- 热部署 -->
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-devtools</artifactId>
  25. <scope>runtime</scope>
  26. <optional>true</optional>
  27. </dependency>
  28. <!-- 配置文件提示 -->
  29. <dependency>
  30. <groupId>org.springframework.boot</groupId>
  31. <artifactId>spring-boot-configuration-processor</artifactId>
  32. <optional>true</optional>
  33. </dependency>
  34. <!-- 日志、getset方法等 -->
  35. <dependency>
  36. <groupId>org.projectlombok</groupId>
  37. <artifactId>lombok</artifactId>
  38. <optional>true</optional>
  39. </dependency>
  40. <!-- 测试 -->
  41. <dependency>
  42. <groupId>org.springframework.boot</groupId>
  43. <artifactId>spring-boot-starter-test</artifactId>
  44. <scope>test</scope>
  45. </dependency>
  46. <!-- druid数据源 -->
  47. <!-- <dependency>-->
  48. <!-- <groupId>com.alibaba</groupId>-->
  49. <!-- <artifactId>druid</artifactId>-->
  50. <!-- <version>1.0.18</version>-->
  51. <!-- </dependency>-->
  52. <!-- 官方的数据域,监控中心、druid数据域 -->
  53. <dependency>
  54. <groupId>com.alibaba</groupId>
  55. <artifactId>druid-spring-boot-starter</artifactId>
  56. <version>1.1.17</version>
  57. </dependency>
  58. <!-- 引入静态模板引擎,才能访问templates下面的静态页面 -->
  59. <dependency>
  60. <groupId>org.springframework.boot</groupId>
  61. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  62. </dependency>

2.bean

  1. @Data
  2. public class GasTest {
  3. String isLeak;
  4. int id;
  5. String time;
  6. float pressure;
  7. //需要开启驼峰命名规则
  8. float flowRate;
  9. float velocity;
  10. }

@Data:lombok的jar包,封装get、set方法

3.resources目录截图

建议先学SpringBoot的静态资源和动态资源目录

4.application.yml

  1. spring:
  2. datasource:
  3. url: jdbc:mysql://localhost:3306/graduationproject
  4. username: root
  5. password: 113846
  6. driver-class-name: com.mysql.jdbc.Driver #5.x版本mysql
  7. #配置mybatis规则
  8. mybatis:
  9. # config-location: classpath:mybatis/mybatis-config.xml #全局只允许一个配置文件,这是开启驼峰命名规则的配置文件
  10. mapper-locations: classpath:mybatis/mapper/*.xml
  11. configuration: #指定mybatis全局配置文件中的配置项目,那就不需要mybatis-config.xml了
  12. map-underscore-to-camel-case: true #开启驼峰命名规则

5.整合mybatis

5.1使用配置文件方式整合mybatis,查询数据库

(1).mapper

  1. @Mapper
  2. public interface GasTestMapper {
  3. public GasTest getIdInfo(int id);
  4. }

@Mapper:声明这是一个bean。在连接数据库中加上@Mapper注解,使用mybatis配置文件mapper.xml,mapper.xml中的namespace指向mapper,会动态生成bean。在服务实现层serviceImpl中能够@Autowired注解动态注入该bean。

(2).mybatis\mapper\GasTestMapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.example.mapper.GasTestMapper">
  6. <select id="getIdInfo" resultType="com.example.bean.GasTest">
  7. select * from gastest where id=#{id}
  8. </select>
  9. </mapper>

namespace:命名空间,mapper接口类的路径

id:mapper中的接口方法

resultType:返回数据集的数据类型

(3).service和serviceimpl

  1. @Service
  2. public interface GasTestService {
  3. public GasTest getIdInfo(int id);
  4. }
  5. @Service
  6. public class GasTestServiceImpl implements GasTestService {
  7. @Autowired
  8. GasTestMapper gasTestMapper;
  9. @Override
  10. public GasTest getIdInfo(int id) {
  11. return gasTestMapper.getIdInfo(id);
  12. }
  13. }

(4)controller

  1. @Slf4j
  2. @RestController
  3. public class GasTestController {
  4. @Autowired
  5. GasTestService gasTestService;
  6. //使用配置文件方式整合mybatis,查询数据库,方式1
  7. //注解RequestParam,路径传参,参为id,方式1
  8. @RequestMapping("/gas")
  9. public GasTest getIdInfo(@RequestParam("id") int id){
  10. return gasTestService.getIdInfo(id);
  11. }
  12. }

(5)接口测试结果展示

5.2使用纯注解方式整合mybatis,查询数据库

(1).mapper

  1. @Mapper
  2. public interface GasTest2Mapper {
  3. //方式2
  4. @Select("select * from gastest where id=#{id}")
  5. public GasTest2 getIdInfo(int id);
  6. }

(2).service和serviceimpl

  1. @Service
  2. public interface GasTest2Service {
  3. public GasTest2 getIdInfo(int id);
  4. }
  5. @Service
  6. public class GasTest2ServiceImpl implements GasTest2Service {
  7. @Autowired
  8. GasTest2Mapper gasTest2Mapper;
  9. public GasTest2 getIdInfo(int id){
  10. return gasTest2Mapper.getIdInfo(id);
  11. }
  12. }

(3).controller

  1. @Autowired
  2. GasTest2Service gasTest2Service;
  3. //使用纯注解整合mybatis,查询数据库,方式2
  4. //注解RequestParam,路径传参,参为id,方式2
  5. @RequestMapping("/gas2")
  6. public GasTest2 getIdInfo2(@RequestParam("id") int id){
  7. return gasTest2Service.getIdInfo(id);
  8. }

(4).接口测试展示结果

5.3使用注解+配置文件方式整合mybatis,查询数据库

(1).mapper或mapper

  1. @Mapper
  2. public interface GasTest2Mapper {
  3. //方式3
  4. //也可以用配置文件方式mybatis\mapper\GasTest2Mapper.xml
  5. @Insert("insert into gastest(`isleak`,`time`,`pressure`,`flow_rate`,`velocity`) values(#{isLeak},#{time},#{pressure},#{flowRate},#{velocity})")
  6. //开启将没有表单传参的自增id返回,Options注解方式,
  7. @Options(useGeneratedKeys = true,keyProperty = "id")
  8. public void insert(GasTest2 gasTest2);
  9. }

(2).mybatis\mapper\GasTest2Mapper.xml或mybatis\mapper\GasTest2Mapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.example.mapper.GasTest2Mapper">
  6. <!-- useGeneratedKeys="true" keyProperty="id": 开启将没有表单传参的自增id返回 -->
  7. <!-- <insert id="insert" useGeneratedKeys="true" keyProperty="id">-->
  8. <!-- insert into gastest(`isleak`,`time`,`pressure`,`flow_rate`,`velocity`) values(#{isLeak},#{time},#{pressure},#{flowRate},#{velocity})-->
  9. <!-- </insert>-->
  10. </mapper>

(3).service和serviceImpl

  1. @Service
  2. public interface GasTest2Service {
  3. public void insert(GasTest2 gasTest2);
  4. }
  5. @Service
  6. public class GasTest2ServiceImpl implements GasTest2Service {
  7. @Autowired
  8. GasTest2Mapper gasTest2Mapper;
  9. public void insert(GasTest2 gasTest2){
  10. gasTest2Mapper.insert(gasTest2);
  11. }
  12. }

(4).controller

  1. //方式3
  2. //也可以用配置文件方式mybatis\mapper\GasTest2Mapper.xml
  3. @Insert("insert into gastest(`isleak`,`time`,`pressure`,`flow_rate`,`velocity`) values(#{isLeak},#{time},#{pressure},#{flowRate},#{velocity})")
  4. //post请求。insert这个方法既可以1.使用配置方式 2.也可以使用注解方式 3.或配置+注解方式一块用
  5. @PostMapping("/gas3")
  6. public GasTest2 insertGasTestInfo(GasTest2 gasTest2){
  7. log.info("gasTest2={}",gasTest2);
  8. gasTest2Service.insert(gasTest2);
  9. return gasTest2;
  10. }

(5).接口测试展示结果

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

闽ICP备14008679号