我試圖用java數據獲取工作,所以這有什麼,我想出了:
告訴我,你怎麼看待這個
(這是從C#一樣的SqlConnection一點點)的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();
}
}
目前尚不清楚你的問題是什麼。這是否是一個好方法?這是非常主觀的,但至少在每次需要連接時都不需要調用'Class.forName'(一次就足夠了),並且它似乎吃掉了使用它的異常。代碼是否正確?不,它甚至不會編譯。你能清理一些東西並澄清你所問的嗎? – 2009-12-21 11:03:03
我可以在哪裏放置Class.forName,因此每次都不需要調用eat(我將創建此SqlConnection的許多實例) – Omu 2009-12-21 11:22:29