Bootstrap

spring如何整合druid连接池?

spring整合druid连接池

 1.新建maven项目

  1. 打开IDE(比如IntelliJ IDEA, Eclipse等)。
  2. 选择新建项目
    1. 在IntelliJ IDEA中,选择File > New > Project
    2. 在Eclipse中,选择File > New > Maven Project
  3. 选择Maven项目模板
    1. 在IntelliJ IDEA中,选择Archetype选项卡,并搜索或选择一个适合Web应用的模板,如maven-archetype-webapp
    2. 在Eclipse中,勾选Create a simple project,然后选择一个合适的模板。
  4. 填写项目信息
    1. 组织ID (groupId):通常是逆域名形式,如com.example
    2. 艺术品ID (artifactId):项目的名称。
    3. 版本 (version):初始版本号,如1.0-SNAPSHOT
    4. 包装 (packaging):对于Web应用程序,可以选择war;对于普通Java应用程序,可以选择jar
  5. 完成创建:点击完成按钮,IDE将下载所需的依赖并创建项目。

2.新建mavenModule

  1. 打开现有的Maven项目
  2. 添加新模块
    1. 在IntelliJ IDEA中,右键点击项目的根目录 -> New > Module... -> 选择Maven Module
    2. 在Eclipse中,右键点击项目的src/main/java目录 -> New > Other... -> 选择Maven类别下的Module
  3. 填写模块信息
    1. 组织ID (groupId):与主项目相同。
    2. 艺术品ID (artifactId):模块的名称。
    3. 版本 (version):与主项目相同。
    4. 包装 (packaging):根据模块的功能选择warjarpom
  4. 完成创建:点击完成按钮,IDE将创建新的模块。

3.导入相关依赖

        首先,你需要添加Druid连接池的依赖。Druid是由阿里巴巴开发的一个高性能、功能丰富的Java数据库连接池组件。在pom.xml文件中添加如下依赖:

  <dependencies>

        <!--导入spring-context依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.1.12</version>

        </dependency>
        <!--导入测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!--导入日志框架-->

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.23.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
            <version>2.23.1</version>
        </dependency>

        <!--整合数据库-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.7</version>
        </dependency>

    </dependencies>

注:需要刷新一下maven

4.配置log4j2.xml

        配置log4j2.xml文件是为了能够控制日志输出的格式、级别、目标等。Log4j2是一个强大的日志框架,提供了丰富的特性来帮助开发者更好地管理和调试日志信息。下面是一个基本的log4j2.xml配置示例,用于设置日志的输出到控制台和文件。

在resource文件夹下配置log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <!--配置控制台输出日志-->
        <Console name="Console" target="SYSTEM_OUT">
            <!--日志的输出格式-->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <!--配置文件输出日志-->
        <File name="File" fileName="d:logs/app.log">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <!--日志级别为debug-->
        <Root level="debug">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

5.配置druid.xml

1)xml中如何引入properties

<beans>标签中加入

xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
        http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context.xsd
        "

注:上述是为了引入外部文件,需要做的准备工作

2)下面是配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd

    ">
        <!-- 这个相当于导入外部配置文件-->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    
</beans>
 

6.准备jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
JDBC 配置项解释
  1. jdbc.driver: 这个配置指定了用于连接数据库的 JDBC 驱动类名称。在这个例子中,com.mysql.jdbc.Driver 指的是 MySQL 的 JDBC 驱动(也称为 MySQL Connector/J)。需要注意的是,如果你正在使用的是 MySQL Connector/J 8.x 或更高版本,正确的驱动类名应该是 com.mysql.cj.jdbc.Driver

  2. jdbc.url: 这个配置提供了连接到数据库的具体 URL 地址。在给定的例子中:

    1. jdbc:mysql://localhost:3306/ 表示连接到本地主机上运行的 MySQL 数据库实例,端口号为 3306。
    2. test 是要连接的数据库名称。
    3. ?useUnicode=true&characterEncoding=UTF-8 是附加的查询字符串参数,用来指定客户端与数据库之间的字符编码为 UTF-8。
  3. jdbc.username: 这是用于登录数据库的用户名。在这里,用户名为 root

  4. jdbc.password: 这是与用户名对应的密码。这里的密码是 root

7.配置druid

<context:property-placeholder location="classpath:jdbc.properties"/>

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        init-method="init" destroy-method="close"
    >
    <property name="driverClassName" value="${jdbc.driver}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>

</bean>

详细解释如下

<context:property-placeholder location="classpath:jdbc.properties"/>
这一行的作用是在 Spring 应用上下文中定义一个属性占位符处理器,该处理器会从类路径下的 jdbc.properties 文件中加载属性值。这样,可以在 XML 配置文件中使用 ${属性名} 的形式引用这些属性值。

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
这一行定义了一个名为 dataSource 的 Bean,其类型为 DruidDataSource。DruidDataSource 是阿里巴巴开源的一个高性能的 Java 数据库连接池组件。init-method="init" 和 destroy-method="close" 分别指定了在 Bean 初始化和销毁时调用的方法。

init-method="init": 当 Spring 容器创建这个 Bean 时,会在构造方法执行后调用 init 方法。
destroy-method="close": 当 Spring 容器销毁这个 Bean 时,会调用 close 方法来释放资源。


<property name="driverClassName" value="${jdbc.driver}"/>
这一行设置了 DruidDataSource 的 driverClassName 属性,该属性指定了 JDBC 驱动的类名。这里的值通过 ${jdbc.driver} 引用了 jdbc.properties 文件中的 jdbc.driver 属性值。

<property name="url" value="${jdbc.url}"/>
这一行设置了 DruidDataSource 的 url 属性,该属性指定了数据库连接的 URL。同样地,这里通过 ${jdbc.url} 引用了 jdbc.properties 文件中的 jdbc.url 属性值。

<property name="username" value="${jdbc.username}"/>
这一行设置了 DruidDataSource 的 username 属性,该属性指定了数据库连接的用户名。通过 ${jdbc.username} 引用了 jdbc.properties 文件中的 jdbc.username 属性值。

<property name="password" value="${jdbc.password}"/>
这一行设置了 DruidDataSource 的 password 属性,该属性指定了数据库连接的密码。通过 ${jdbc.password} 引用了 jdbc.properties 文件中的 jdbc.password 属性值。

8.测试

import com.alibaba.druid.pool.DruidDataSource;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DruidTest {

    @Test
    public void test() {

        /**
         * 加载指定配置
         */
        ApplicationContext context = new ClassPathXmlApplicationContext("druid.xml");

        //获取druid
        DruidDataSource dataSource = context.getBean(DruidDataSource.class);

        System.out.println(dataSource);

        System.out.println(dataSource.getUrl());
        System.out.println(dataSource.getUsername());
        System.out.println(dataSource.getPassword());
        System.out.println(dataSource.getDriverClassName());
    }
}
 

;