一尘不染

需要关于如何在Java(jsp&servlet)中使用连接轮询的建议

jsp

我正在开发一个简单的项目。在此项目中,我不使用任何jsp页面和servlet与数据库进行交互。我要如何写连接字符串。目前,我在每个jsp页面上都编写了连接字符串。(我知道这不是最佳实践)。现在我的问题是我必须如何管理连接字符串?我只需要写一个普通页面,然后我就必须利用它。有人可以指导我吗?


阅读 284

收藏
2020-06-10

共1个答案

一尘不染

您需要在servlet容器中创建JNDI数据源。默认情况下,它已经是一个连接池数据源。如何做到这一点取决于servlet容器的制造/版本。因此,这只是一个针对Tomcat的示例:

首先创建一个文件/META-INF/context.xml(要清楚,META-INF与webapp的WEB-
INF处于同一级别),然后用以下文件填充(假定为MySQL DB)。

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource
        name="jdbc/mydatabase" type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="10000" 
        url="jdbc:mysql://localhost:3306/mydatabase"
        driverClassName="com.mysql.jdbc.Driver"
        username="java" password="pass"
    />
</Context>

然后将其注册到您的webapp的中/WEB-INF/web.xml

<resource-env-ref>
    <resource-env-ref-name>jdbc/mydatabase</resource-env-ref-name>
    <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>

在您的数据库管理器/ DAO类中按以下方式获取它。

try {
    this.dataSource = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/mydatabase");
} catch (NamingException e) {
    throw new RuntimeException("DataSource is missing in JNDI.", e);
}

最后,在执行查询的DAO方法中获取它的连接。

connection = dataSource.getConnection();

不要忘记close()它里面finallytry你在哪里得到它。

也可以看看:

2020-06-10