Java ResultSet案例讲解

 更新时间:2021年08月13日 15:16:44   作者:深知她是一场梦  
这篇文章主要介绍了Java ResultSet案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

ResultSet

ResultSet是我们使用jdbc连接时,查询的一个返回结果集,ResultSet resultSet = stmt.executeQuery(sql),下面就使用例子介绍ResultSet的使用

例子是通过jdbc连接查account表中的数据,然后用实体类Account封装起来,返回这个类的集合。 

jdbc工具类代码

package com.lingaolu.Utils;
 
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
 
/**
 * @author 林高禄
 * @create 2020-06-23-11:12
 */
public class JdbcUtils {
    private static String driver;
    private static String url;
    private static String userName;
    private static String pw;
 
    static{
        try {
            Properties p = new Properties();
            ClassLoader classLoader = JdbcUtils.class.getClassLoader();
            // 这个路径相对于src的路径来说
            URL resource = classLoader.getResource("com/lingaolu/file/jdbc.properties");
            String path = resource.getPath();
            p.load(new FileReader(path));
            driver = p.getProperty("driver");
            url = p.getProperty("url");
            userName = p.getProperty("user");
            pw = p.getProperty("password");
            Class.forName(driver);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
 
    public static Connection createConnection() throws SQLException {
        return DriverManager.getConnection(url, userName, pw);
    }
 
    public static void close(Statement stmt,Connection con){
        if(null != stmt){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(null != con){
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
 
    public static void close(ResultSet set,Statement s,Connection con){
        if(null != set){
            try {
                set.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        close(s,con);
    }
}

Account实体类代码

package com.lingaolu.jdbcConnector;
 
/**
 * @author 林高禄
 * @create 2020-06-24-8:28
 */
public class Account {
    private int id;
    private String name;
    private double balance;
    private int myAge;
 
    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 double getBalance() {
        return balance;
    }
 
    public void setBalance(double balance) {
        this.balance = balance;
    }
 
    public int getMyAge() {
        return myAge;
    }
 
    public void setMyAge(int myAge) {
        this.myAge = myAge;
    }
 
    @Override
    public String toString() {
        return "Account{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", balance=" + balance +
                ", myAge=" + myAge +
                '}';
    }
}

测试Demo3的代码

package com.lingaolu.jdbcConnector;
 
import com.lingaolu.Utils.JdbcUtils;
 
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
 
/**
 * @author 林高禄
 * @create 2020-06-23-17:27
 */
public class Demo3 {
    public static void main(String[] args) {
        String sql = "select * from account";
        List<Account> accounts = fineAccount(sql);
        accounts.forEach(System.out::println);
        System.out.println("----------------------------------");
        sql = "select * from account where name='张三'";
        accounts = fineAccount(sql);
        accounts.forEach(System.out::println);
    }
 
    public static List<Account> fineAccount(String sql){
        Connection con = null;
        Statement stmt = null;
        ResultSet resultSet = null;
        List<Account> rerurnList = new ArrayList<>();
        try {
            con = JdbcUtils.createConnection();
            stmt = con.createStatement();
            resultSet = stmt.executeQuery(sql);
            Account acc = null;
            while(resultSet.next()){
                // 引号里的字段要与表里的一样
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                double balance = resultSet.getDouble("balance");
                int age = resultSet.getInt("age");
 
                acc = new Account();
                acc.setId(id);
                acc.setName(name);
                acc.setBalance(balance);
                acc.setMyAge(age);
 
                rerurnList.add(acc);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtils.close(resultSet,stmt,con);
        }
        return rerurnList;
    }
}

表中的数据

运行输出:

Account{id=1, name='张三', balance=500.0, myAge=17}
Account{id=2, name='李四', balance=1000.0, myAge=16}
Account{id=7, name='张三', balance=600.0, myAge=19}
Account{id=11, name='林帅', balance=20000.0, myAge=18}
----------------------------------
Account{id=1, name='张三', balance=500.0, myAge=17}
Account{id=7, name='张三', balance=600.0, myAge=19}

结果与预期的一致

到此这篇关于Java ResultSet案例讲解的文章就介绍到这了,更多相关Java ResultSet讲解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring轻松解决循环依赖

    Spring轻松解决循环依赖

    Spring的解决循环依赖是有前置条件的,要解决循环依赖我们首先要了解Spring Bean对象的创建过程和依赖注入的方式。依赖注入方式,我之前的博客有所分享,大家可以在看本篇文章之前进行一下小小的回顾
    2023-04-04
  • 使用Java设置字型和颜色的方法详解

    使用Java设置字型和颜色的方法详解

    这篇文章主要介绍了使用Java设置字型和颜色的方法,在Java的绘图等图形化编程中较常用到,需要的朋友可以参考下
    2015-10-10
  • springboot HandlerIntercepter拦截器修改request body数据的操作

    springboot HandlerIntercepter拦截器修改request body数据的操作

    这篇文章主要介绍了springboot HandlerIntercepter拦截器修改request body数据的操作,具有很好的参考价值,希望对大家有所帮助。
    2021-06-06
  • 关于使用swagger整合springMVC的方法

    关于使用swagger整合springMVC的方法

    在平时开发写接口文档的工作时,一般都是word文档,带来书写麻烦、维护麻烦的问题,比如改了源代码忘了更新文档、解释不明确带来歧义、无法在线尝试等等,swagger可以有效解决这类问题,需要的朋友可以参考下
    2023-04-04
  • maven打包web项目时同时打包为war和jar文件的方法

    maven打包web项目时同时打包为war和jar文件的方法

    本篇文章主要介绍了maven打包web项目时同时打包为war和jar文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • SpringBoot配置文件方式,在线yml文件转properties

    SpringBoot配置文件方式,在线yml文件转properties

    这篇文章主要介绍了SpringBoot配置文件方式,在线yml文件转properties,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 解决Maven项目本地公共common包缓存问题

    解决Maven项目本地公共common包缓存问题

    这篇文章主要介绍了解决Maven项目本地公共common包缓存问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 在同一个类中调用带有@Transactional注解的方法示例

    在同一个类中调用带有@Transactional注解的方法示例

    这篇文章主要为大家介绍了在同一个类中调用带有@Transactional注解的方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • maven打包如何指定jdk的版本

    maven打包如何指定jdk的版本

    这篇文章主要介绍了maven打包如何指定jdk的版本问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 解决@Api注解不展示controller内容的问题

    解决@Api注解不展示controller内容的问题

    这篇文章主要介绍了解决@Api注解不展示controller内容的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。
    2022-01-01

最新评论