Java 使用 List 进行数据库查询的实例 (java list查询数据库)

Java 是一门广泛应用的编程语言,而数据库则是在许多应用中必不可少的工具。Java 应用程序中经常需要和数据库打交道,进行数据查询是其中的一个重要方面。在数据查询中,List 是一种非常有用的数据结构,能够方便快捷地存储和处理数据。本文将基于 Java 语言,介绍 List 在数据库查询中的使用方法。

一、连接数据库

在 Java 应用程序中,我们需要使用 JDBC 来连接数据库。JDBC 是一个 Java API(应用程序接口),用于连接各种类型的关系型数据库,并实现数据的读写。在使用 JDBC 之前,需要下载并安装数据库驱动程序,这样才能在 Java 应用程序中使用 JDBC API。

具体而言,在使用 JDBC 连接数据库时,我们需要先加载数据库驱动程序。对于 MySQL 数据库而言,可以通过 Class.forName() 方法来加载驱动程序:

Class.forName(“com.mysql.jdbc.Driver”);

在加载驱动程序之后,我们还需要创建一个 Connection 对象,该对象表示与数据库的连接。Connection 对象可以通过 DriverManager.getConnection() 方法来获取:

String url = “jdbc:mysql://localhost:3306/test”;

String user = “root”;

String password = “”;

Connection conn = DriverManager.getConnection(url, user, password);

上述代码中,url 表示数据库的地址,user 和 password 分别表示数据库的用户名和密码。创建完 Connection 对象后,就可以通过该对象来执行 SQL 查询了。

二、实现查询操作

在使用 JDBC 进行数据库查询时,一般需要先创建一个 Statement 对象。该对象用于执行 SQL 语句并返回结果。在创建 Statement 对象后,就可以通过该对象来执行 SQL 查询:

Statement stmt = conn.createStatement();

String sql = “SELECT * FROM student WHERE age > 18”;

ResultSet rs = stmt.executeQuery(sql);

上述代码中,sql 表示要执行的 SQL 语句。在执行 SQL 查询后,会返回一个 ResultSet 对象,其中包含了查询结果。ResultSet 对象的每一行对应查询结果中的一条数据。

接下来,我们需要将 ResultSet 中的数据存储到 List 中。在存储之前,需要先判断 ResultSet 中是否还有下一行数据。在判断过程中,可以使用 ResultSet 对象的 next() 方法。该方法返回值为 boolean 类型,表示 ResultSet 中是否还有下一行数据。如果还有,则返回 true;否则返回 false。

while (rs.next()) {

int id = rs.getInt(“id”);

String name = rs.getString(“name”);

int age = rs.getInt(“age”);

Student student = new Student(id, name, age);

list.add(student);

}

上述代码中,我们通过遍历 ResultSet 对象,逐行取出数据,并创建 Student 对象。然后将 Student 对象存储到 List 中。在取数据的过程中,可以通过 ResultSet 对象的 getXXX() 方法来获取某一列的数据,其中 XXX 表示数据类型。例如,getInt() 方法用于获取整型数据,getString() 方法用于获取字符串数据等。

在完成查询操作后,需要关闭 ResultSet 对象、Statement 对象和 Connection 对象:

rs.close();

stmt.close();

conn.close();

三、应用示例

下面,我们通过一个实际的 Java 应用程序来演示 List 在数据库查询中的应用。该程序可用于查询 MySQL 数据库中的学生信息。

1、创建表

我们需要在 MySQL 数据库中创建一个名为 student 的表。该表包含三个字段,分别为 id、name 和 age。其中,id 为 int 类型,是主键;name 和 age 分别为 varchar 和 int 类型。

CREATE TABLE `student` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(50) NOT NULL,

`age` int(11) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、插入数据

接下来,我们需要向 student 表中插入一些数据。可以使用以下 SQL 语句:

INSERT INTO `student` (`name`, `age`) VALUES (‘Tom’, 18);

INSERT INTO `student` (`name`, `age`) VALUES (‘Jerry’, 19);

INSERT INTO `student` (`name`, `age`) VALUES (‘Tony’, 20);

INSERT INTO `student` (`name`, `age`) VALUES (‘Mike’, 21);

3、编写 Java 应用程序

在 Java 应用程序中,我们需要先创建一个 Student 类,用于表示学生信息:

public class Student {

private int id;

private String name;

private int age;

public Student(int id, String name, int age) {

super();

this.id = id;

this.name = name;

this.age = age;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

然后,我们编写一个名为 StudentDao 的类,用于实现数据库查询操作。在该类中,我们使用 List 数据结构来存储查询结果。

public class StudentDao {

private Connection conn;

public StudentDao() {

String url = “jdbc:mysql://localhost:3306/test”;

String user = “root”;

String password = “”;

try {

Class.forName(“com.mysql.jdbc.Driver”);

conn = DriverManager.getConnection(url, user, password);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

}

public List query() {

List list = new ArrayList();

Statement stmt;

try {

stmt = conn.createStatement();

String sql = “SELECT * FROM student WHERE age > 18”;

ResultSet rs = stmt.executeQuery(sql);

while (rs.next()) {

int id = rs.getInt(“id”);

String name = rs.getString(“name”);

int age = rs.getInt(“age”);

Student student = new Student(id, name, age);

list.add(student);

}

rs.close();

stmt.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

return list;

}

}

在 StudentDao 类中,我们先创建一个 Connection 对象(在类的构造函数中)。然后,在 query() 方法中,我们创建一个 Statement 对象,并执行 SQL 查询。在查询完成后,将查询结果存储到 List 中。关闭 ResultSet、Statement 和 Connection 对象,并返回 List 对象。

4、测试程序

接下来,我们在 Mn 类中测试刚刚编写的 StudentDao 类:

public class Mn {

public static void mn(String[] args) {

StudentDao dao = new StudentDao();

List list = dao.query();

for (Student student : list) {

System.out.println(student.getName() + “, ” + student.getAge());

}

}

}

在 Mn 类中,我们先创建一个 StudentDao 对象,并调用其 query() 方法进行查询。查询完成后,在控制台输出查询结果。

四、


数据运维技术 » Java 使用 List 进行数据库查询的实例 (java list查询数据库)