在对数据库进行修改的时候,我们知道需要借助 Statement 这个类,执行其 execute 方法。而在对数据库进行查询的时候,我们也是需要借助于 Statement 这个类的,需要使用它的 executeQuery() 方法。
它将查询到的结果存放在 ResultSet 中,然后我们通过对 ResultSet 对象进行操作来获取里面的内容。
result 是一个集合,它可以用来接收从数据库里面查询出来的数据。常用的方法有:
方法 | 描述 |
---|---|
boolean next() throws SQLException; | 将当前数据指针移动到下一行 |
int getInt(int columnIndex) throws SQLException; | 以整形的形式按照列的编号来获取列里面的内容,这个时候数据库里面的对应的列的数据类型是 int 类型,否则会抛异常 |
int getInt(String columnLabel) throws SQLException; | 以整形的形式按照列名来获取列里面的内容。这个时候数据库里面的对应的列的数据类型是 int 类型,否则会抛异常 |
String getString(int columnIndex) throws SQLException; | 以 String 的形式按照列的编号来获取列里面的内容,可以用在任意类型 |
String getString(String columnLabel) throws SQLException; | 以 String 的形式按照列名来获取列里面的内容,可以用在任意类型 |
我们还是使用 person 表,将里面的所有数据查询出来。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class MysqlTest {
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/haicoder";
public static final String DBUSER = "root";
public static final String PASSWORD = "123456";
public static void main(String[] args) throws Exception {
System.out.println("嗨客网(www.haicoder.net)");
Connection connection = null;
//加载驱动
Class.forName(DBDRIVER);
//创建连接
connection = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);
//创建 statement 对象
Statement statement = connection.createStatement();
String sql = "select * from person";
//执行sql
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
String name = resultSet.getString("username");
Integer age = resultSet.getInt("age");
System.out.println("name in db is :" + name + " age in db is :" + age);
}
//关闭操作
statement.close();
//关闭数据库连接
connection.close();
System.out.println("结束");
}
}
运行结果如下:
从例子里面,我们可以看出执行 executeQuery 我们可以将 sql 语句里面的内容从 mysql 数据库里面获取出来。通过 ResultSet 来结束 db 里面的数据。
然后使用 ResultSet 里面的方法来获取具体的值。遍历方式和 读取文件 相似。通过 next 判断当前有没有数据,有数据就遍历,没有就截止。
在使用数据库查询的时候,我们是将数据库里面查询到的数据存放在 ResultSet 对象里面,其实它是在应用系统内存里面的,如果数据量太大,它会将应用系统的内存占满,导致应用系统会有问题。
所以我们平时在项目环境中,在查询的时候,需要进行分页。