我正在尝试编写一个实现DataSource的类。这看起来很简单,但我看到的Oracle示例都是这样声明类的:
public class ConnectionPoolingBean implements SessionBean {
....
}我希望看到更多这样的东西:
public class MyDataSource implements DataSource {
....
}另外,我也不明白连接是如何工作的。getConnection()方法只接受用户名和密码的参数。那么我如何连接到我的数据库呢?
归根结底,我需要了解的是如何连接到数据库并使用DataSource从查询中返回结果集。我只是看不到任何明确的例子来说明如何编写一个类来在我的WebApp上使用它。
这是我一直在阅读的内容,现在让我感到困惑。https://docs.oracle.com/javase/tutorial/jdbc/basics/sqldatasources.html http://docs.oracle.com/javase/7/docs/api/javax/sql/DataSource.html
发布于 2017-06-11 00:02:11
使用任何连接池为您使用case.If您正在使用应用程序服务器,您可以使用应用程序服务器连接池或使用开源dbcp连接池机制。
<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>示例
import org.apache.commons.dbcp2.BasicDataSource;
public class DataBaseUtility
{
private static BasicDataSource dataSource;
private static BasicDataSource getDataSource()
{
if (dataSource == null)
{
BasicDataSource ds = new BasicDataSource();
ds.setUrl("jdbc:mysql://localhost/test");
ds.setUsername("root");
ds.setPassword("password");
ds.setMinIdle(5);
ds.setMaxIdle(10);
ds.setMaxOpenPreparedStatements(100);
dataSource = ds;
}
return dataSource;
}
public static void main(String[] args) throws SQLException
{
try (BasicDataSource dataSource = DataBaseUtility.getDataSource();
Connection connection = dataSource.getConnection();
PreparedStatement pstmt = connection.prepareStatement("SELECT * FROM account");)
{
System.out.println("The Connection Object is of Class: "+connection.getClass());
try (ResultSet resultSet = pstmt.executeQuery();)
{
while (resultSet.next())
{
System.out.println(resultSet.getString(1) + "," + resultSet.getString(2) + "," + resultSet.getString(3));
}
}
catch (Exception e)
{
connection.rollback();
e.printStackTrace();
}
}
}
}https://stackoverflow.com/questions/44475260
复制相似问题