gpt4 book ai didi

java 模拟 C# SqlConnection 和数据访问层(我的尝试)

转载 作者:行者123 更新时间:2023-12-01 16:08:57 24 4
gpt4 key购买 nike

我正在尝试使用 java 数据访问,所以这就是我想到的:
告诉我你对此有何看法
(有点像 C# 中的 SqlConnection)

import java.sql.*;
public class SqlConnection {

Connection connection;

public Connection GetConnection() {return connection;}

public void Connect(String cs, String user, String pass)
{
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
connection = DriverManager.getConnection(cs, user, pass);
System.out.println("connected");

} catch (Exception e) {
e.printStackTrace();
}
}

public void Disconnect()
{
if(connection != null){
try {
connection.close();
} catch (SQLException e){
e.printStackTrace();
}
connection = null;
}
}
}

我想我会这样使用它

public class MyDAL {
public Foo[] GetFoos()
{
SqlConnection conn = new SqlConnection();
PreparedStatement comm = null;
ResultSet rs = null;
try {
conn.Connect(cs, user, pass);
comm = conn.GetConnection()
.prepareStatement("SELECT * FROM foos");
rs = comm.executeQuery();
while (rs.next()) {
String s = rs.getString("name");
...
}
} catch (Exception e) {
e.printStackTrace();
}
finally
{
DBUtil.Close(rs);
DBUtil.Close(comm);
conn.Disconnect();
}
}

最佳答案

如果你想学习 java JDBC 这没问题。我不会使用大写的方法名称(这些通常是 C#,而不是 java)并使用记录器(主要是 log4j,但选择您最喜欢的风格)而不是 stdout 和 stderr。

捕获异常确实是不好的做法;最好首先捕获所有特定的异常,这样您就可以发出合理的错误消息。如果您确实认为可以让您的软件正常运行,那么您始终可以在此之后捕获异常。

在这种特殊情况下,我会捕获 Connect 中的特定异常并抛出我的家庭构建 CannotConnectException(originalException)。此异常并不罕见,但也不是正常流程,是检查异常的典型情况。

如果你想做一些可扩展的事情,那么至少使用 Apache DBCP ,而是一个数据库连接池。

如果您想学习大多数 Java 数据库相关应用程序中使用的内容,请访问 Hibernate ,或 EJB3(也由 Hibernate 完成)。您确实不会再在野外看到太多原始 JDBC 应用程序。

关于java 模拟 C# SqlConnection 和数据访问层(我的尝试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1939441/

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