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(在线等)

Class.forName(DB_DRIVER);

Connection connDB = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);

Statement st = conn.createStatement();

ResultSet rs = st.executeQuery(querySQL);

关于java list查询数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/287546.html<

(0)
运维的头像运维
上一篇2025-05-15 22:10
下一篇 2025-05-15 22:11

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注