如您所说,本人将为您提供Java开发druid数据连接池maven方式简易配置流程示例的完整攻略。
一、引入druid连接池的maven依赖
首先,在Java项目的pom.xml文件中引入druid连接池的maven依赖。示例如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.19</version>
</dependency>
以上代码表示引用了druid连接池的1.1.19版本。
二、在配置文件中添加数据源配置
其次,我们需要在项目的配置文件(application.properties或application.yml)中添加数据源的相关配置。
以下是使用application.properties配置文件的示例:
# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
# Druid连接池配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.filters=wall,stat
spring.datasource.maxActive=20
spring.datasource.initialSize=10
spring.datasource.maxWait=60000
spring.datasource.minIdle=5
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1 FROM DUAL
以上代码表示配置了一个名为test的数据库的数据源,采用了Druid连接池。其中,与Druid连接池相关的配置项包括:
- spring.datasource.type:连接池的类型,这里我们指定为DruidDataSource;
- spring.datasource.filters:Druid连接池的filter配置,此处包括了wall(防SQL注入)和stat(统计SQL执行信息)两个过滤器;
- spring.datasource.maxActive:连接池中能同时活跃的最大连接数;
- spring.datasource.initialSize:初始化时建立连接池中连接的个数;
- spring.datasource.maxWait:获取连接时最大等待时间,单位毫秒;
- spring.datasource.minIdle:最小空闲连接数;
- spring.datasource.timeBetweenEvictionRunsMillis:回收检查时间间隔,单位毫秒;
- spring.datasource.minEvictableIdleTimeMillis:最小空闲时间,达到此时间后连接将被移除,单位毫秒;
- spring.datasource.testWhileIdle:空闲连接检测是否可用;
- spring.datasource.validationQuery:连接检查语句,用于检查连接是否可用,这里我们以SELECT 1 FROM DUAL作为检查语句。
三、在Java代码中使用Druid连接池
最后,在Java代码中使用配置好的Druid连接池即可。示例如下:
@Autowired
private DataSource dataSource;
public void testConnection() throws SQLException {
Connection conn = dataSource.getConnection();
// 具体业务逻辑
conn.close();
}
以上代码表示在Java类中注入了名为dataSource的数据源,并在testConnection方法中使用该数据源获取连接。具体业务逻辑在注释中省略。
示例一
在Spring Boot项目中使用Druid连接池的示例:
- 创建Spring Boot项目并添加Druid依赖。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
- 配置数据源
在application.yml中添加数据源的相关配置信息:
spring:
datasource:
url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
# Druid连接池配置
type: com.alibaba.druid.pool.DruidDataSource
initial-size: 5
max-active: 50
min-idle: 5
max-wait: 60000
time-between-eviction-runs-millis: 60000
validation-query: SELECT 1 FROM DUAL
- 在Java代码中使用Druid连接池
示例代码:
@RestController
public class DemoController {
@Autowired
private DataSource dataSource;
@GetMapping("/test")
public String test() throws SQLException {
Connection conn = dataSource.getConnection();
System.out.println(conn.getMetaData().getURL());
conn.close();
return "success";
}
}
上述代码在Spring Boot应用中使用@Autowired注解注入数据源,并在test()方法中获取连接并打印连接的URL。
示例二
在Java Web项目中使用Druid连接池的示例:
- 创建Java Web项目并添加Druid依赖。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.19</version>
</dependency>
- 配置数据源
在web.xml中添加数据源的相关配置信息:
<context-param>
<param-name>webAppName</param-name>
<param-value>druid</param-value>
</context-param>
<filter>
<filter-name>druidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>druidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>druidStatViewServlet</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<param-name>loginUsername</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>loginPassword</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>resetEnable</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>druidStatViewServlet</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<resource-ref>
<description>druid datasource</description>
<res-ref-name>jdbc/datasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
- 在Java代码中使用Druid连接池
示例代码:
public class DemoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private DataSource dataSource;
@Override
public void init() throws ServletException {
try {
InitialContext ic = new InitialContext();
dataSource = (DataSource) ic.lookup("java:/comp/env/jdbc/datasource");
} catch (NamingException e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
Connection conn = dataSource.getConnection();
System.out.println(conn.getMetaData().getURL());
conn.close();
response.getWriter().write("success");
} catch (SQLException e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
上述代码在Java Web应用中使用JNDI获取数据源,并在doGet()方法中获取连接并打印连接的URL。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java开发druid数据连接池maven方式简易配置流程示例 - Python技术站