程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

java SpringBoot(十二)数据库访问Ddemo 使用Druid跟MyBatis简单实例

发布于2021-05-29 20:27     阅读(910)     评论(0)     点赞(20)     收藏(5)


今天我们简单使用Druid作为数据库操作的数据源 Druid可以提供对数据库访问、慢sql、防火墙、sql注入等很多监控功能

使用MyBatis数据库操作工具对数据库进行简单操作。

前提:

我们都知道用SpringBoot操作数据库需要导入JDBC包

JDBC包帮我们底层配置好的连接池是:HikariDataSource

我们想将数据源切换成Druid,导入Druid包查看源码

 

在 DataSourceAutoConfiguration之前加载,所以数据源就切换成我们的 Druid

 

Demo:

1、首先pom修改,导入jdbc、mysql驱动、druid以及MyBatis

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid-spring-boot-starter</artifactId>
  4. <version>1.1.17</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.mybatis.spring.boot</groupId>
  8. <artifactId>mybatis-spring-boot-starter</artifactId>
  9. <version>2.1.4</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-data-jdbc</artifactId>
  14. </dependency>
  15. <dependency>
  16. <groupId>mysql</groupId>
  17. <artifactId>mysql-connector-java</artifactId>
  18. <!-- <version>5.1.49</version>-->

2、修改配置文件

  1. server:
  2. port: 8081 #spring 启动端口
  3. spring:
  4. datasource:
  5. url: jdbc:mysql://localhost:3306/test #mysql 地址
  6. username: root
  7. password: 123456
  8. driver-class-name: com.mysql.jdbc.Driver #指定驱动
  9. druid:
  10. filters: stat,wall,slf4j #指定开启的功能
  11. stat-view-servlet: #监控页面配置
  12. enabled: true #开启
  13. login-username: admin #账号 密码
  14. login-password: admin
  15. reset-enable: false
  16. web-stat-filter: #web 过滤器
  17. enabled: true #开启
  18. url-pattern: /* #监控的页面
  19. exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*' #解除监控的页面
  20. filter:
  21. stat:
  22. slow-sql-millis: 1000 #慢sql阈值 ms
  23. log-slow-sql: true #日志记录慢sql
  24. enabled: true #开启
  25. wall:
  26. enabled: true #开启防火墙
  27. config:
  28. drop-table-allow: false #禁止删除表的操作
  29. mybatis:
  30. mapper-locations: classpath:mapper/*xml #mapper扫描路径
  31. type-aliases-package: com.example.demo.bean #类型所在目录
  32. configuration:
  33. map-underscore-to-camel-case: true #开启驼峰字段转换

3、开启数据库 查看数据表

4、根据数据库数据内容创建bean包装类

这里利用了 lombok 的@Data 实现自动实现了构造函数、get set以及toString

  1. package com.example.demo.bean;
  2. import lombok.Data;
  3. @Data
  4. public class Student {
  5. private Long id;
  6. private Integer score;
  7. private String name;
  8. }

5、编写mapper

  1. package com.example.demo.mapper;
  2. import com.example.demo.bean.Student;
  3. import org.apache.ibatis.annotations.Mapper;
  4. @Mapper
  5. public interface StudentMapper {
  6. public Student getStudent(Long id);
  7. }

6、创建该mapper的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.demo.mapper.StudentMapper">
  6. <!-- public Account getAcct(Long id); -->
  7. <select id="getStudent" resultType="com.example.demo.bean.Student">
  8. select * from student where id=#{id}
  9. </select>
  10. <!-- -->
  11. </mapper>

1、是命名空间 直接复制引用即可

2、指定mapper里边的方法

3、输出的类型

4、sql语句

7、编写service层

取出我们注入的mapper 利用mapper实现sql查询

  1. package com.example.demo.service;
  2. import com.example.demo.bean.Student;
  3. import com.example.demo.mapper.StudentMapper;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. @Service
  7. public class StudentService {
  8. @Autowired
  9. StudentMapper studentMapper;
  10. public Student getStudentById(Long id){return studentMapper.getStudent(id);}
  11. }

8、最后编写controller

  1. package com.example.demo.controller;
  2. import com.example.demo.service.StudentService;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.jdbc.core.JdbcTemplate;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.web.bind.annotation.GetMapping;
  7. import org.springframework.web.bind.annotation.RequestParam;
  8. import org.springframework.web.bind.annotation.ResponseBody;
  9. @Controller
  10. public class SqlConTestController {
  11. @Autowired
  12. JdbcTemplate jdbcTemplate;
  13. @Autowired
  14. StudentService studentService;
  15. @ResponseBody
  16. @GetMapping("/query")
  17. public String query(){
  18. Long count = jdbcTemplate.queryForObject("select count(*) from student", Long.class);
  19. return count.toString();
  20. }
  21. @ResponseBody
  22. @GetMapping("/query2")
  23. public String query2(@RequestParam("id") Long id){
  24. return studentService.getStudentById(id).toString();
  25. }
  26. }

9、启动程序 访问本地8081 实现查询

10、查看Druid的监控数据

访问 http://localhost:8081/druid/index.html



所属网站分类: 技术文章 > 博客

作者:你看我可爱不

链接:http://www.javaheidong.com/blog/article/207140/aa921139451602c6d9e4/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)