我想说您的代码是许多最差做法的示例。让我来计算一下:
- 您的Connection类是一个糟糕的抽象,没有提供超过java.sql.Connection的任何东西。
- 如果使用您的课程,您将永远无法利用连接池。
- 您需要硬连接驱动程序类,连接URL等。如果不进行编辑和重新编译,就无法更改它。更好的解决方案是将这些事情外部化。
- 与提供整个堆栈跟踪信息相比,在catch块中打印错误消息要少得多。
- 您的代码伤害了我的眼睛。它不遵循Sun Java编码标准。
- 您的
retrieveData
方法完全毫无价值。您将如何处理所有这些印刷报表?将它们加载到数据结构或对象中是否更好,以便您的其余代码可以使用该信息? - 它是
rowsAffected
-“影响”是动词,“效果”是名词。另一个变量没有任何用处。
你走错了路。重新考虑一下。
我认为您会发现此代码更有用。
package persistence;import java.sql.*;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class DatabaseUtils{ public static Connection createConnection(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException { Class.forName(driver); if ((username == null) || (password == null) || (username.trim().length() == 0) || (password.trim().length() == 0)) { return DriverManager.getConnection(url); } else { return DriverManager.getConnection(url, username, password); } } public static void close(Connection connection) { try { if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void close(Statement st) { try { if (st != null) { st.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void close(ResultSet rs) { try { if (rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void rollback(Connection connection) { try { if (connection != null) { connection.rollback(); } } catch (SQLException e) { e.printStackTrace(); } } public static List<Map<String, Object>> map(ResultSet rs) throws SQLException { List<Map<String, Object>> results = new ArrayList<Map<String, Object>>(); try { if (rs != null) { ResultSetmetaData meta = rs.getmetaData(); int numColumns = meta.getColumnCount(); while (rs.next()) { Map<String, Object> row = new HashMap<String, Object>(); for (int i = 1; i <= numColumns; ++i) { String name = meta.getColumnName(i); Object value = rs.getObject(i); row.put(name, value); } results.add(row); } } } finally { close(rs); } return results; }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)