Java数据库查询

Java数据库查询教程

在对数据库进行修改的时候,我们知道需要借助 Statement 这个类,执行其 execute 方法。而在对数据库进行查询的时候,我们也是需要借助于 Statement 这个类的,需要使用它的 executeQuery() 方法。

它将查询到的结果存放在 ResultSet 中,然后我们通过对 ResultSet 对象进行操作来获取里面的内容。

11 mysql 查询.png

Java 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("结束"); } }

运行结果如下:

12 select.png

从例子里面,我们可以看出执行 executeQuery 我们可以将 sql 语句里面的内容从 mysql 数据库里面获取出来。通过 ResultSet 来结束 db 里面的数据。

然后使用 ResultSet 里面的方法来获取具体的值。遍历方式和 读取文件 相似。通过 next 判断当前有没有数据,有数据就遍历,没有就截止。

Java数据库查询总结

在使用数据库查询的时候,我们是将数据库里面查询到的数据存放在 ResultSet 对象里面,其实它是在应用系统内存里面的,如果数据量太大,它会将应用系统的内存占满,导致应用系统会有问题。

所以我们平时在项目环境中,在查询的时候,需要进行分页。