ITPub博客

首页 > 数据库 > 数据库开发技术 > Spring Boot集成Druid快速入门Demo

Spring Boot集成Druid快速入门Demo

原创 数据库开发技术 作者:hblog 时间:2024-05-07 08:28:36 0 删除 编辑

1.什么是Druid?

Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。

2.mysql环境搭建

第一个mysql数据库

docker run --name docker-mysql-5.7 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7

初始化数据

create database demo;create table user_info(user_id     varchar(64)          not null primary key,username    varchar(100)         null ,age         int(3)               null ,gender      tinyint(1)           null ,remark      varchar(255)         null ,create_time datetime             null ,create_id   varchar(64)          null ,update_time datetime             null ,update_id   varchar(64)          null ,enabled     tinyint(1) default 1 null);INSERT INTO demo.user_info(user_id, username, age, gender, remark, create_time, create_id, update_time, update_id, enabled)VALUES('1', '1', 1, 1, '1', NULL, '1', NULL, NULL, 1);


说明

msyql账号rootmysql密码123456

3.代码工程

实验目的:使用druid连接mysql数据库

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <parent>        <artifactId>springboot-demo</artifactId>        <groupId>com.et</groupId>        <version>1.0-SNAPSHOT</version>    </parent>    <modelVersion>4.0.0</modelVersion>
<artifactId>druid</artifactId>
<properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> <!--Mybatis代码自动生成器--> <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.4.0</version> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> <!-- <version> 5.1.39</version> --> </dependency> </dependencies> <executions> <execution> <id>Generate MyBatis Artifacts</id> <phase>package</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <!--允许移动生成的文件 --> <verbose>true</verbose> <!-- 是否覆盖 --> <overwrite>true</overwrite> <!-- 自动生成的配置 --> <configurationFile>src/main/resources/mybatis-generator.xml</configurationFile> </configuration> </plugin> </plugins> </build></project>

durid配置

package com.et.druid.config;
import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;import java.util.Arrays;import java.util.HashMap;import java.util.Map;
@Configurationpublic class DruidConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource") public DataSource getDataSource(){ return new DruidDataSource(); } // 配置Druid监控 // 配置一个管理后台的Servlet @Bean public ServletRegistrationBean statViewServlet(){ ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); Map<String,String> initParams=new HashMap<>(); initParams.put("loginUsername","admin"); initParams.put("loginPassword","admin"); initParams.put("allow",""); // 默认就是允许所有访问 // initParams.put("deny","127.0.0.1"); // 拒绝哪个网址访问,优先级大于allow bean.setInitParameters(initParams); return bean; } //2、配置一个web监控的filter @Bean public FilterRegistrationBean webStatFilter(){ FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map<String,String> initParams = new HashMap<>(); // 配置不拦截哪些请求 initParams.put("exclusions","*.js,*.css,/druid/*"); bean.setInitParameters(initParams); // 配置拦截所有请求 bean.setUrlPatterns(Arrays.asList("/*")); return bean; }}

application.properties

server.port=8088spring.datasource.url=jdbc:mysql://localhost:3306/demo?serverTimezone=UTCspring.datasource.username=rootspring.datasource.password=123456spring.datasource.driverClassName=com.mysql.cj.jdbc.Drivermybatis.mapper-locations=classpath:mapper/*.xml

mybatis代码生成配置

<!DOCTYPE generatorConfiguration        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>

<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/> <!--配置数据源--> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/demo" userId="root" password="123456">
</jdbcConnection>
<!--配置实体类存放的目录--> <javaModelGenerator targetPackage="com.et.druid.entity" targetProject="src/main/java"/>
<!--配置mapper.xml文件存放的目录--> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
<!--配置mapper接口文件存放的目录--> <javaClientGenerator targetPackage="com.et.druid.mapper" targetProject="src/main/java" type="XMLMAPPER"/>
<!--配置需要自动生成的表名 --> <table tableName="user_info"> <property name="modelOnly" value="false"/> </table>
</context></generatorConfiguration>

点击Maven生成代码

启动类

package com.et.druid;
import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication@MapperScan(value = "com.et.druid.mapper")public class DemoApplication {
public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); }}

以上只是一些关键代码,所有代码请参见下面代码仓库

代码仓库

  • https://github.com/Harries/springboot-demo

4.测试

启动Spring Boot应用

druid监控地址

浏览器访问:http://localhost:8088/druid/index.html

测试接口是否正常

浏览器访问:http://127.0.0.1:8088/hello,返回表里面的信息

[{"userId":"1","username":"1","age":1,"gender":true,"remark":"1","createTime":null,"createId":"1","updateTime":null,"updateId":null,"enabled":true}]

5.参考引用

  • https://jueee.github.io/2020/10/2020-10-30-SpringBoot%E9%9B%86%E6%88%90Druid/

  • https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

  • http://www.liuhaihua.cn/archives/710500.html

原文作者:HBLOG;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-05-04

  • 博文量
    210
  • 访问量
    111759