需要有关如何在 java(jsp 和 servlet)中使用连接轮询的建议

发布于 2024-11-01 05:36:42 字数 165 浏览 4 评论 0原文

我正在开发一个简单的项目。在这个项目中,我使用 n 个 jsp 页面和 servlet 来与数据库交互。我必须如何编写连接字符串。目前我为每个jsp页面编写了连接字符串。(我知道这不是最佳实践)。现在我的问题是我必须如何管理连接字符串?我必须只写一个公共页面,然后我必须利用它..我如何实现这一点?有人可以指导我吗?

I'm developing a simple project.In this project i'm using n no of jsp pages and servlets to interact with the database. How i have to write the connection string. Presently i written the connection string each and every jsp page.(I knew this is not a best practice). Now my question is how i have to manage the connection string? I have to write in only one common page, then i have to utilize that.. How i can implement this ?? Could any one guide me on this??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我的奇迹 2024-11-08 05:36:42

您需要在 servlet 容器中创建 JNDI 数据源。默认情况下它已经是一个连接池数据源。如何做到这一点取决于 servletcontainer 的 make/version。所以这里只是一个针对 Tomcat 的示例:

首先创建一个文件 /META-INF/context.xml (需要明确的是,META-INF 与 webapp 的 WEB-INF 处于同一级别)并用以下内容填充它(假设是 MySQL 数据库)。

<?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>

然后将其注册到您的 web 应用程序的 /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();

不要忘记在获取它的 tryfinallyclose()它。

另请参阅:

You need to create a JNDI datasource in the servletcontainer. It is by default a connection pooled datasource already. How to do that depends on the servletcontainer make/version. So here's just a Tomcat targeted example:

First create a file /META-INF/context.xml (to be clear, the META-INF is at the same level as the WEB-INF of the webapp) and fill it with the following (assuming a 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>

Then register it in your webapp's /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>

Get it as follows in your DB manager / DAO class.

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

Finally get the connection of it inside the DAO method where you're executing the query.

connection = dataSource.getConnection();

Don't forget to close() it inside the finally of the try where you're getting it.

See also:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文