gpt4 book ai didi

java - 在 DAO 外部创建 JDBC 连接

转载 作者:行者123 更新时间:2023-12-03 18:36:42 24 4
gpt4 key购买 nike

所以我这个周末刚学完 JDBC,并成功地将我的代码从 main 方法转移到 MVC 应用程序中。此应用程序的目的是保存玩家名册并在需要时显示用户凭据。该程序运行良好,当我请求一个 url 时...

http://localhost:8084/gmustudent/players?id=1

我得到了那个播放器的正确输出!问题是我正在我的 PlayersDAO 类中执行数据库连接,我认为这不是执行此操作的“最佳”方法。所以我有两个问题。

  1. 有没有办法在 web.xml 中执行数据库连接文件或其他一些文件,以便在服务器最初启动时它会立即执行与数据库的连接并准备好询问时询问?
  2. 这实际上是比在 DAO 中建立连接更好的替代方案,还是会产生无法预料的负面缺点。也就是说,与我的数据库的持续连接是否正是我不想要的?

如有任何评论或链接,我们将不胜感激。我将分享我目前拥有的 DAO 类代码,以便您可以看到我目前拥有的代码。谢谢大家!

package com.jdbc.test;

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;

public class PlayersDAO
{
public static Players viewPlayer(int id) throws SQLException
{
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
Players playerObject = null;

try
{
String url = "jdbc:mysql://localhost:3306/gmustudent";
String username = "root";
String password = "root";

try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException error)
{
System.out.println("Error: " + error.getMessage());
}

connection = DriverManager.getConnection(url, username, password);
statement = connection.createStatement();
resultSet = statement.executeQuery("SELECT * FROM players WHERE id = " + id);

if(resultSet.next())
playerObject = new Players(resultSet.getLong("id"), resultSet.getString("name"), resultSet.getString("position"), resultSet.getString("height"), resultSet.getString("year"), resultSet.getString("hometown"), resultSet.getString("highschool"), resultSet.getString("headshot"));
}
finally
{
if (connection != null) try{connection.close();} catch(SQLException ignore) {}
if (statement != null) try{statement.close();} catch(SQLException ignore) {}
if (resultSet != null) try{resultSet.close();} catch(SQLException ignore) {}
}

return playerObject;
}
}

最佳答案

您可以使用资源在 web.xml 文件中创建数据库连接。希望本教程对您有所帮助。

http://viralpatel.net/blogs/database-connection-pooling-tomcat-eclipse-db/

关于java - 在 DAO 外部创建 JDBC 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12831876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com