public int getInt(String sql) { int i = 0; try { Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(sql); if (rs.next()) { i = rs.getInt(1); } st.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return i; }
时间: 2024-04-28 21:21:11 浏览: 94
这段代码是一个执行 SQL 查询语句并返回结果的方法。它接收一个 SQL 查询语句作为参数,返回一个 `int` 类型的结果。
具体来说,该方法中首先创建了一个 `Statement` 对象 `st`,然后使用 `st.executeQuery()` 方法执行 SQL 查询语句并获取查询结果集 `rs`。接着,它调用 `rs.next()` 方法判断结果集中是否有数据行。如果有,它就调用 `rs.getInt(1)` 方法获取第一列的整数值,并将其赋值给变量 `i`。最后,它关闭了 `Statement` 对象 `st` 并返回 `i`。
需要注意的是,该方法中可能会抛出 `SQLException` 异常,因此需要在异常处理部分进行相应的处理。此外,该方法没有对 SQL 查询语句进行参数化处理,存在 SQL 注入的风险。建议使用预编译语句或者参数化查询来避免这种风险。
相关问题
public int getScoreCount() throws Exception{ initConnection(); String sql = "select count(*) from score"; Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery(sql); rs.next(); int count = rs.getInt(1); closeConnection(); return count; }
这段代码看起来是一个 Java 方法,它的作用是获取 Score 表中的记录总数。具体来说,它使用了 JDBC API 与数据库进行通信,执行了一条 SELECT SQL 语句,查询了 score 表中的记录总数,并将结果存储在一个 int 类型的变量 count 中。在方法结尾处,它关闭了数据库连接并返回了这个 count。
public List<Course> search(String name, String teacher, String classroom) { String sql = "select * from course where "; if (name != "") { sql += "name like '%" + name + "%'"; } if (teacher != "") { sql += "teacher like '%" + teacher + "%'"; } if (classroom != "") { sql += "classroom like '%" + classroom + "%'"; } List<Course> list = new ArrayList<>(); Connection conn = DBUtil.getConn(); Statement state = null; ResultSet rs = null; try { state = conn.createStatement(); rs = state.executeQuery(sql); Course bean = null; while (rs.next()) { int id = rs.getInt("id"); String name2 = rs.getString("name"); String teacher2 = rs.getString("teacher"); String classroom2 = rs.getString("classroom"); bean = new Course(id, name2, teacher2, classroom2); list.add(bean); } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(rs, state, conn); } return list; }
这段代码是一个搜索课程的方法,根据传入的课程名称、教师、教室信息来查询符合条件的课程记录。方法中使用了SQL语句拼接的方式生成动态查询语句,根据传入的参数来拼接不同的查询条件。最后将查询结果封装成Course对象的集合返回。需要注意的是该代码存在SQL注入的风险,建议使用PreparedStatement来进行参数化查询,避免SQL注入攻击。
阅读全文