try { intConnect(); initParas(sql, paras); ResultSet result = stmt.executeQuery(); resultList = convertResultSetToMapList(result); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("???query????????"+sql+"??"); } finally{ close(); } return resultList; }
时间: 2023-07-12 07:02:55 浏览: 29
这是一段 Java 代码,是一个查询数据库并将结果转换为 MapList 的方法。其中,使用了 try-catch-finally 块来确保资源的正确释放。在 try 块中,调用了 intConnect() 方法初始化连接,initParas() 方法初始化参数,执行查询并用 convertResultSetToMapList() 方法将结果转换为 MapList。在 catch 块中,捕获 SQLException 异常并打印异常信息。最后在 finally 块中调用 close() 方法关闭资源,并返回结果列表 resultList。
相关问题
public Map<String, Object> queryOneRow(String sql, List<Object> paras) { Map<String, Object> oneRow = new HashMap<String, Object>(); try { intConnect(); initParas(sql, paras); ResultSet result = stmt.executeQuery(); List<Map<String, Object>> resultList = convertResultSetToMapList(result); if (resultList.size() > 0) { oneRow = resultList.get(0); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); System.out.println("???queryOneRow????????"+sql+"??"); } finally{ close(); } return oneRow; }
这段代码是用来查询数据库中的一行数据,并将结果以Map形式返回。其中,参数sql表示查询语句,paras表示查询语句中的参数。该方法会将参数设置到PreparedStatement中,并执行查询操作。如果查询结果不为空,则将结果转换为Map形式并返回;否则返回空的Map。该方法使用了try-catch-finally结构,确保在任何情况下都会关闭数据库连接。
private void initParas(String sql, List<Object> paras) throws SQLException { stmt = cont.prepareStatement(sql); if (paras != null && paras.size() > 0) { int index = 1; for (int i = 0; i < paras.size(); i++) { stmt.setObject(index++, paras.get(i)); } } }
这段代码是一个Java类中的私有方法,用于初始化一个预编译的SQL语句的参数。它接受两个参数:一个SQL语句和一个包含参数值的列表。在方法中,首先使用`cont.prepareStatement(sql)`方法创建一个`PreparedStatement`对象`stmt`,该对象表示已经编译好的SQL语句。然后,如果参数列表不为空,就使用`setObject`方法将参数列表中的值逐个设置到`stmt`对象的占位符中。最后,预编译的语句和参数都已经被初始化完成。
预编译语句是一种SQL语句的优化技术,它可以将SQL语句预先编译为一个可执行的指令序列,并且在执行时只需要传递参数,而不需要重新编译整个语句,从而提高了程序的执行效率。同时,使用预编译语句还可以有效避免SQL注入攻击。