由于一些逆天需求,作测试代码如下。
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