java中 resultset.getint方法作用
时间: 2024-05-06 14:18:57 浏览: 19
Java中ResultSet接口中的getInt方法是用于从查询结果集中获取int类型数据的。该方法的作用是从当前行的结果集中获取指定列的值,并将其作为int类型返回。
getInt方法有两个参数,第一个参数是指定要从结果集中获取数据的列的索引(从1开始),第二个参数是指定要获取的int类型数据的默认值。如果结果集中指定列的值为null,则该方法将返回默认值。
以下是使用getInt方法从ResultSet对象中获取int类型数据的示例代码:
```java
ResultSet rs = statement.executeQuery("SELECT id, age FROM users");
while (rs.next()) {
int id = rs.getInt(1); // 获取第1列的int类型数据
int age = rs.getInt("age"); // 获取名为"age"列的int类型数据
System.out.println("ID: " + id + ", Age: " + age);
}
```
在这个例子中,我们从名为“users”的表中查询id和age列的值。然后,使用ResultSet对象的next方法遍历结果集中的每一行。对于每一行,我们使用ResultSet对象的getInt方法获取id和age列的int类型数据,并将其打印到控制台。
相关问题
blog.setBlogId(resultSet.getInt("blogId"));
这段代码是在Java中使用ResultSet对象获取查询结果集中的数据并设置给Blog对象的属性。其中,`resultSet.getInt("blogId")`表示从结果集中获取名为"blogId"的列的值,并将其转换为整数类型。然后,通过调用`blog.setBlogId()`方法将获取到的值设置给Blog对象的`blogId`属性,以便进一步处理或展示数据。这样可以将数据库中查询到的数据映射到Java对象中,方便后续的操作和使用。
package jdbc; import java.sql.*; import java.util.Scanner; public class HomeWork { /* Test1.java 输入老师的姓名,查询该老师的 姓名,年龄,职称,工资 */ public static void main(String[] args) { try (Connection connection = DBUtil.getConnection();){ Statement statement = connection.createStatement(); Scanner scanner = new Scanner(System.in); System.out.println("请输入老师的姓名:"); String username = scanner.nextLine(); String sql = "SELECT name,age,title,salary FROM teacher WHERE teacher='"+username+"'"; ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()){ String name = resultSet.getString("name"); int age = resultSet.getInt("age"); String title = resultSet.getString("title"); int salary = resultSet.getInt("salary"); System.out.println(""+name+","+age+","+title+","+salary); } } catch ( SQLException e) { e.printStackTrace(); } } }改正该代码
这段代码存在SQL注入的安全隐患,应该使用PreparedStatement或其他方式来防止注入攻击。以下是改正后的代码:
```
package jdbc;
import java.sql.*;
import java.util.Scanner;
public class HomeWork {
/*
* Test1.java 输入老师的姓名,查询该老师的 姓名,年龄,职称,工资
*/
public static void main(String[] args) {
try (Connection connection = DBUtil.getConnection();
PreparedStatement ps = connection.prepareStatement(
"SELECT name, age, title, salary FROM teacher WHERE teacher=?");) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入老师的姓名:");
String username = scanner.nextLine();
ps.setString(1, username);
ResultSet resultSet = ps.executeQuery();
while (resultSet.next()) {
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
String title = resultSet.getString("title");
int salary = resultSet.getInt("salary");
System.out.println("" + name + "," + age + "," + title + "," + salary);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
改正后的代码使用了PreparedStatement,将用户输入的参数设置到占位符中,防止了SQL注入攻击。