Java 在DAO外部创建JDBC连接
所以我这个周末刚刚学习完JDBC,并成功地将我的代码从main方法转移到MVC应用程序中。此应用程序的目的是保存球员名册,并在需要时显示用户凭据。该计划的工作非常好,当我要求一个网址,如Java 在DAO外部创建JDBC连接,java,model-view-controller,jdbc,dao,Java,Model View Controller,Jdbc,Dao,所以我这个周末刚刚学习完JDBC,并成功地将我的代码从main方法转移到MVC应用程序中。此应用程序的目的是保存球员名册,并在需要时显示用户凭据。该计划的工作非常好,当我要求一个网址,如 http://localhost:8084/gmustudent/players?id=1 我得到了该播放器的正确输出!问题是我在PlayersDAO类中执行数据库连接,我认为这不是实现这一点的“最佳”方法。所以我有两个问题 有没有办法在web.xml中执行数据库连接 文件或其他文件,以便在服务器最初启动时
http://localhost:8084/gmustudent/players?id=1
我得到了该播放器的正确输出!问题是我在PlayersDAO类中执行数据库连接,我认为这不是实现这一点的“最佳”方法。所以我有两个问题
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文件中创建数据库连接。我希望本教程能对您有所帮助
您可以使用。它可以在应用程序性能、并发性和可扩展性方面提供显著的好处 IMHO,隐藏任何资源的实例化细节总是一个好方法。您可以使用工厂方法来执行此操作。这种方法的优点是,您可以随时更改管理资源的方式—例如,每个DAO可以有一个JDBCConnection实例,也可以有连接池。任何时候,您都可以提供特定于开发的数据库连接、特定于测试的数据库连接或生产数据库连接。通过这种方法,您可以隐藏所有这些细节。您可以配置
jndijdbc资源
或使用'JAP-Hibernate'。