spring整合druid连接池
1.新建maven项目
- 打开IDE(比如IntelliJ IDEA, Eclipse等)。
- 选择新建项目 :
- 在IntelliJ IDEA中,选择
File > New > Project
。 - 在Eclipse中,选择
File > New > Maven Project
。
- 在IntelliJ IDEA中,选择
- 选择Maven项目模板 :
- 在IntelliJ IDEA中,选择
Archetype
选项卡,并搜索或选择一个适合Web应用的模板,如maven-archetype-webapp
。 - 在Eclipse中,勾选
Create a simple project
,然后选择一个合适的模板。
- 在IntelliJ IDEA中,选择
- 填写项目信息 :
- 组织ID (
groupId
):通常是逆域名形式,如com.example
。 - 艺术品ID (
artifactId
):项目的名称。 - 版本 (
version
):初始版本号,如1.0-SNAPSHOT
。 - 包装 (
packaging
):对于Web应用程序,可以选择war
;对于普通Java应用程序,可以选择jar
。
- 组织ID (
- 完成创建:点击完成按钮,IDE将下载所需的依赖并创建项目。
2.新建mavenModule
- 打开现有的Maven项目。
- 添加新模块 :
- 在IntelliJ IDEA中,右键点击项目的根目录 ->
New > Module...
-> 选择Maven Module
。 - 在Eclipse中,右键点击项目的
src/main/java
目录 ->New > Other...
-> 选择Maven
类别下的Module
。
- 在IntelliJ IDEA中,右键点击项目的根目录 ->
- 填写模块信息 :
- 组织ID (
groupId
):与主项目相同。 - 艺术品ID (
artifactId
):模块的名称。 - 版本 (
version
):与主项目相同。 - 包装 (
packaging
):根据模块的功能选择war
、jar
或pom
。
- 组织ID (
- 完成创建:点击完成按钮,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 配置项解释
-
jdbc.driver : 这个配置指定了用于连接数据库的 JDBC 驱动类名称。在这个例子中,
com.mysql.jdbc.Driver
指的是 MySQL 的 JDBC 驱动(也称为 MySQL Connector/J)。需要注意的是,如果你正在使用的是 MySQL Connector/J 8.x 或更高版本,正确的驱动类名应该是com.mysql.cj.jdbc.Driver
。 -
jdbc.url: 这个配置提供了连接到数据库的具体 URL 地址。在给定的例子中:
jdbc:mysql://localhost:3306/
表示连接到本地主机上运行的 MySQL 数据库实例,端口号为 3306。test
是要连接的数据库名称。?useUnicode=true&characterEncoding=UTF-8
是附加的查询字符串参数,用来指定客户端与数据库之间的字符编码为 UTF-8。
-
jdbc.username : 这是用于登录数据库的用户名。在这里,用户名为
root
。 -
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());
}
}