Java,数据库,全查询(通用结果集),查询一个

本文详细介绍了如何在Java中使用JDBC进行数据库操作,包括单行查询、多行查询,并展示了如何将查询结果转换为Pojo对象。实例演示了如何利用ResultSet和PreparedStatement进行数据库操作,以及如何优雅地处理结果集和资源管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java查询数据库

查询一个

注: next()指向的是下一行是否有数据

private static Connection connection;
    public static void queryOne(String sql) throws SQLException {
        //1. 获取连接对象
         connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
        //3. 创建一个sql对象
        Statement statement = connection.createStatement();
        //4.发送sql给mysql服务器执行
        ResultSet rs = statement.executeQuery(sql);

        //5.输出结果看是否有结果集
        if (rs.next()){
            String id = rs.getString("id");
            String name = rs.getString("name");
            String sex = rs.getString("sex");
            System.out.println(id+name+sex);
        }
        if (rs.next()){
            String id = rs.getString("id");
            String name = rs.getString("name");
            String sex = rs.getString("sex");
            System.out.println(id+"--"+name+"--"+sex);
        }

        //6.释放资源
        rs.next();
        statement.close();
        connection.close();
    }

结果集进行查询

 public static void queryMore(String sql) throws SQLException {
        //1. 获取连接对象
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
        //3. 创建一个sql对象
        Statement statement = connection.createStatement();
        //4.发送sql给mysql服务器执行
        ResultSet rs = statement.executeQuery(sql);

        //5.输出结果看是否有结果集
        while (rs.next()){
            String id = rs.getString("id");
            String name = rs.getString("name");
            String sex = rs.getString("sex");
            System.out.println(id+"--"+name+"--"+sex);
        }
        //6.释放资源
        rs.next();
        statement.close();
        connection.close();
    }
//测试
    public static void main(String[] args) throws SQLException {
//        queryOne("select * from t_emps where id='a0001' or id='a0002'");
        queryMore("select * from t_emps ");
    }

注:需要一个pojo包

package com.frr.utlis;

import com.frr.pojo.Emps;

import java.sql.*;
import java.util.ArrayList;
import java.sql.Date;

public class JdbcUtils {

    public static void main(String[] args) throws SQLException {
        queryMore("select * from t_emps");
    }

    public static void queryMore(String sql) throws SQLException {
        //1. 获取连接对象
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
        //3. 创建一个sql对象
        Statement statement = connection.createStatement();
        //4.发送sql给mysql服务器执行
        ResultSet rs = statement.executeQuery(sql);

        ArrayList<Emps> empList = new ArrayList<>();

        //5.输出结果看是否有结果集
        while (rs.next()){
            String id = rs.getString("id");
            String name = rs.getString("name");
            String sex = rs.getString("sex");
            Date birth=rs.getDate("birth");
            double salary=rs.getDouble("salary");
            int deptId=rs.getInt("deptId");
            //一行数据封装在一个对象中
            Emps emps= new Emps(id,name,sex, birth,salary,deptId);
            //对象依次存入集合
            empList.add(emps);
        }
//        System.out.println(empList);
        empList.stream().forEach(System.out::println);
        //6.释放资源
        rs.next();
        statement.close();
        connection.close();
    }
}

​ empList.stream().forEach(System.out::println);

​ 通过流依次输出信息并换行

一般使用: empList.stream().forEach(System.out::println);

通用的结果集查询

 public static void main(String[] args) throws SQLException {
        queryMore2("select * from t_emps ");
    }

    private static void queryMore2(String sql) throws SQLException {
        //1. 获取连接对象
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
        //3. 创建一个sql对象
        Statement statement = connection.createStatement();
        //4.发送sql给mysql服务器执行
        ResultSet rs = statement.executeQuery(sql);

        ResultSetMetaData md = rs.getMetaData();
        int count = md.getColumnCount();

       while (rs.next()){
           for (int i = 1; i <count ; i++) {
               Object value = rs.getObject(i);
               System.out.print(value+"\t");
           }
           System.out.println();
       }

        //关闭资源
        rs.close();
        statement.close();
        connection.close();

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值