Java JDBC工作流
我目前正在构建一个使用JDBC和MySQL的小应用程序 我有这个DB类。目前它只有一个main方法连接,然后返回一些东西。现在这是正确的工作。但我想把它改成这样: 具有构造函数的DB类。 调用不同SQL查询的多个方法例如,我想这样调用一个用户 db.user('John') 所以,我想防止什么:每次我使用新方法时都必须连接 抱歉,如果问题可能有点不清楚。我是新的JDBC用户Java JDBC工作流,java,mysql,jdbc,Java,Mysql,Jdbc,我目前正在构建一个使用JDBC和MySQL的小应用程序 我有这个DB类。目前它只有一个main方法连接,然后返回一些东西。现在这是正确的工作。但我想把它改成这样: 具有构造函数的DB类。 调用不同SQL查询的多个方法例如,我想这样调用一个用户 db.user('John') 所以,我想防止什么:每次我使用新方法时都必须连接 抱歉,如果问题可能有点不清楚。我是新的JDBC用户 package application; import java.sql.Connection; import java
package application;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DB {
//ToDo Add these credentials leter to a main config file.
private static String connectionUrl = "jdbc:mysql://localhost:3306/tvh_jdbctesting";
private static String connectionUser = "root";
private static String connectionPassword = "root";
private static String jdbc = "com.mysql.jdbc.Driver";
DB(){
}
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(jdbc).newInstance();
//Makes connection with the provided credentials.
conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword);
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM test");
while (rs.next()) {
String id = rs.getString("id");
String name = rs.getString("name");
String wachtwoord = rs.getString("wachtwoord");
System.out.println(id + name + wachtwoord);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); }
try { if (stmt != null) stmt.close(); } catch (SQLException e) { e.printStackTrace(); }
try { if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); }
}
}
}
对于一个新的JDBC人员来说,这实际上是一个不错的开始。我最大的挑剔是Class.forName返回的类不需要
newInstance
,这取决于您使用的驱动程序是否需要Class.forName
如果您在这里所说的是一个从命令行运行的小单线程程序,它完成了它的任务并离开了,那么您可以让main方法创建连接,创建其他对象并调用它们,传入连接,然后让主程序在最后的finally块中关闭连接。我宁愿显式地传递连接,也不愿使用某个DB类
如果您的程序有多个线程必须同时访问数据库,或者您希望程序能够在可能导致数据库连接中断的网络漏洞中生存,那么您可以开始考虑使用连接池。如果你觉得JDBC太痛苦了。如果这个问题可能有点不清楚,那么很抱歉。是的,你的问题不清楚,错在哪里?你试过实施什么吗?您可以创建一个返回
语句的方法
对象,并在不同的方法中使用它?连接池呢?甚至只是一个物体。尽管您应该尝试使用Java可以做的面向对象的事情。没有把东西放在主课上。这真的帮助我走得更远。谢谢