我正在尝试使用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();
}
}
答案 0 :(得分:1)
如果你想学习java JDBC,这很好。我不使用大写的方法名称(通常是C#,而不是java)并使用记录器(主要是log4j,但选择你喜欢的味道)而不是stdout和stderr。
捕捉异常是非常糟糕的做法;最好先捕获所有特定的异常,这样你就可以做出明智的错误信息。如果您真的认为可以使软件正常运行,那么您可以随时捕获异常。
在这种特殊情况下,我会在Connect中捕获特定的异常并抛出我的home build CannotConnectException(originalException)。此异常并不罕见,但也不是正常流程,通常用于检查异常。
如果你想做一些可扩展的事情,那么至少要使用Apache DBCP,而不是数据库连接池。
如果您想学习大多数Java数据库相关应用程序中使用的内容,请转到Hibernate或EJB3(也由Hibernate完成)。你真的不再在野外看到太多的原始JDBC应用程序了。