Springboot 项目中 手动取出连接执行sql,结束后将连接交还给连接池

来源:互联网 发布:bootstrap 数据绑定 编辑:程序博客网 时间:2024/05/10 14:25

由于一些逆天需求,作测试代码如下。

package com.ieplat.admin;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.tomcat.jdbc.pool.ConnectionPool;
import org.apache.tomcat.jdbc.pool.DataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.hknaruto.WebXml;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = WebXml.class)
public class CommonTest {

    

    @Autowired
    DataSource dataSource;

    @Test
    public void testManualSql() throws SQLException, InterruptedException {
        ConnectionPool pool = dataSource.getPool();
        while (true) {
            try {
                System.out.println(pool.getActive());
                Connection conn = pool.getConnection();
                System.out.println(pool.getActive());
                System.out.println(conn);
                PreparedStatement ps = conn.prepareStatement("select * from product where product_name like ?");
                ps.setString(1, "%asdf%");
                ResultSet rs = ps.executeQuery();
                while (rs.next()) {
                    System.out.println(rs.getString("product_name"));
                }
                conn.close();
                Thread.sleep(200);
            } catch (Exception e) {
                e.printStackTrace();
                break;
            }
        }
    }
}

说明:

springboot 项目使用的是tomcat jdbc pool

参考:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html#boot-features-connect-to-production-database


0 0
原创粉丝点击