package com.alibaba.druid.bvt.pool;
import java.sql.Connection;
import java.sql.ResultSet;
import junit.framework.TestCase;
import org.junit.Assert;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledPreparedStatement;
public class DruidPooledPreparedStatementTest extends TestCase {
private DruidDataSource dataSource;
protected void setUp() throws Exception {
dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mock:xxx");
dataSource.setTestOnBorrow(false);
dataSource.setFilters("stat");
dataSource.setPoolPreparedStatements(true);
}
protected void tearDown() throws Exception {
dataSource.close();
}
public void test_hitCount() throws Exception {
String sql = "select ?";
{
Connection conn = dataSource.getConnection();
DruidPooledPreparedStatement stmt = (DruidPooledPreparedStatement) conn.prepareStatement(sql);
Assert.assertEquals(0, stmt.getFetchSize());
Assert.assertEquals(0, stmt.getFetchDirection());
Assert.assertEquals(0, stmt.getMaxRows());
Assert.assertEquals(0, stmt.getMaxFieldSize());
Assert.assertEquals(0, stmt.getQueryTimeout());
Assert.assertEquals(sql, stmt.getSql());
stmt.setFetchSize(1);
stmt.setFetchDirection(2);
stmt.setMaxRows(3);
stmt.setMaxFieldSize(4);
stmt.setQueryTimeout(5);
Assert.assertEquals(1, stmt.getFetchSize());
Assert.assertEquals(2, stmt.getFetchDirection());
Assert.assertEquals(3, stmt.getMaxRows());
Assert.assertEquals(4, stmt.getMaxFieldSize());
Assert.assertEquals(5, stmt.getQueryTimeout());
stmt.setString(1, "xx");
ResultSet rs = stmt.executeQuery();
Assert.assertTrue(rs.next());
Assert.assertFalse(rs.next());
rs.close();
conn.close();
Assert.assertEquals(0, stmt.getHitCount());
}
{
Connection conn = dataSource.getConnection();
DruidPooledPreparedStatement stmt = (DruidPooledPreparedStatement) conn.prepareStatement(sql);
Assert.assertEquals(0, stmt.getFetchSize());
Assert.assertEquals(0, stmt.getFetchDirection());
Assert.assertEquals(0, stmt.getMaxRows());
Assert.assertEquals(0, stmt.getMaxFieldSize());
Assert.assertEquals(0, stmt.getQueryTimeout());
stmt.setString(1, "xx");
ResultSet rs = stmt.executeQuery();
Assert.assertTrue(rs.next());
Assert.assertFalse(rs.next());
rs.close();
conn.close();
Assert.assertEquals(1, stmt.getHitCount());
Assert.assertNotNull(stmt.getKey());
}
}
}