ResultSet的介绍与使用

article/2025/10/1 7:27:33

相关文章

  • jdbc连接以及出现的异常处理
  • Jdbc工具类
  • ResultSet的介绍与使用
  • jdbc中的sql注入
  • PreparedStatement的介绍与解决sql注入
  • jdbc管理事务

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;}@Overridepublic 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}

结果与预期的一致


http://chatgpt.dhexx.cn/article/jD3X3YO2.shtml

相关文章

JDBC之ResultSet接口

ResultSet介绍 对数据库的查询操作&#xff0c;一般需要返回查询结果。在程序中&#xff0c;JDBC为我们提供了ResultSet接口来专门处理查询结果集。 由于ResultSet是JDBC的一个接口&#xff0c;先来简单了解一下JDBC&#xff1a; JDBC&#xff1a;Java Database Connection&am…

android studio BindService

一.输入&#xff1a; 1.全部代码&#xff1a; 主界面代码&#xff1a; public class BindServiceActivity extends AppCompatActivity implements View.OnClickListener {private static final String TAG "BindServiceActivity";private Button mBtBindService;…

Service中bindService

最近有用到Activity需要不断的从Service中获取数据&#xff0c;第一个想法肯定就是通过bind回调机制了&#xff0c;有几点概念模糊特此记录下&#xff1a; 单独使用bindService()&#xff0c;unbindService()会经历&#xff1a;->onCreate()->onBind()->Service runn…

bindService不调用onServiceConnected的问题

bindService不调用onServiceConnected的问题 昨天做一个项目时&#xff0c;Activity需要bindService获取到service实例与service进行交互&#xff0c;创建好service如下&#xff08;例&#xff09;&#xff1a; class MyService{private IBinder mBinder new MyServicerBind…

bind服务

一、域名 www.baidu.com www.baidu.com. &#xff08;.&#xff09;根域 &#xff08;com&#xff09;一级域名 &#xff08;baidu&#xff09;二级域名 二、DNS解析记录分类 A记录、CNAME、MX记录、NS记录 1、A记录 通过域名直接查询到IP 例如&…

bindService启动流程

通过bindService启动的Service,会执行Service的onCreate、onBind、onUnbind、onDestroy方法&#xff0c;可以通过onBind方法返回的Binder对象和调用端进行通信&#xff0c;并且Service的生命周期和调用端同步。 如下是启动bindService的代码 var stu: Student? null val con…

AIDL报错,bindService一直连接不上、不起作用。

先说问题&#xff0c;最近用aidl&#xff0c;发现bindService根本就不走&#xff0c;不知道咋回事&#xff0c;明明写的没有任何毛病啊&#xff1f; //aidl绑定private void bind() {Intent intent new Intent();String pkg "com.example.mzz_service";//需要调用…

服务两种启动方式(startService与bindService)的区别

综上两篇文章 1.Android Service的基本用法&#xff08;startService启动方式生命周期&#xff09; 2.Android Service与Activity之间的通信&#xff08;bindService启动方式&#xff09; 区别如下&#xff1a; 一.生命周期上的区别 startService启动服务&#xff1a;Service会…

进程间通讯:Binder:bindService之 onServiceConnected回调

1&#xff1a;bindService官方概述 很明显 通过Google官方文档描述&#xff0c;我们知道 1&#xff1a;bindService&#xff08;&#xff09;的返回值只是表明服务是否存在&#xff1b; 2&#xff1a;真正能代表是否成功绑定服务的是触发onServiceConnected&#xff08;&…

Android入门第41天-Android中的Service(bindService)

介绍 在前一天我们介绍了Android中有两种启动Service的方法。并擅述了startService和bindService的区别。同时我们着重讲了startService。 因此今天我们就来讲bindService。bindService大家可以认为它是和Android的一个共生体。即这个service所属的activity如果消亡那么bindS…

Android Binder框架实现之bindService详解

Android Binder框架实现之bindService详解 Android Binder框架实现目录&#xff1a; Android Binder框架实现之Binder的设计思想 Android Binder框架实现之何为匿名/实名Binder Android Binder框架实现之Binder中的数据结构 Android Binder框架实现之Binder相关的接口和类 Andr…

Android bindService流程

一. 前言 我们可以通过startService来启动一个服务, 当然也可以通过bindService绑定一个服务,本篇文章我们来讲一讲绑定服务的完整流程, 阅读此文之前,建议先阅读一下笔者的这三篇文章 Android 进程间通信机制(三) 系统进程与应用进程通信 Android 进程间通信机制(四) 应用进程…

bind服务程序

一、介绍 1、bind服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。 2、为了有效地限制bind服务程序仅能对自身的配置文件进行操作&#xff0c;以确保整个服务器的安全&#xff0c;在安装部署bind服务程序时加上chroot&#xff08;俗称牢笼机制&#xff09;…

startService bindService 区别

Android执行Service有两种方法&#xff0c;一种是startService&#xff0c;一种是bindService。下面让我们一起来聊一聊这两种执行Service方法的区别。 1、生命周期上的区别 执行startService时&#xff0c;Service会经历onCreate->onStartCommand。当执行stopService时&…

Android中Service使用bindService

前面已经对Service的startServer方式启动一个服务了解过了&#xff0c;现在来看一下Service的另一种启动方式→bindServer bindServer使用场景 1、在同个app之间调用&#xff08;即是同一个进程中&#xff09; 2、在不同app之间调用&#xff08;即是跨进程间通信&#xff09…

Android——bindService()方法启动服务

通过绑定服务来启动的话需要注意创建一个类来实现ServiceConnection接口&#xff0c;重写onServiceConnected&#xff08;&#xff09;和onServiceDisconnected&#xff08;&#xff09;方法。这个类用于服务的连接。成功绑定服务时&#xff0c;会调用onServiceConnected&#…

Android Service 服务(三)—— bindService与remoteService

一、bindService简介 bindService是绑定Service服务&#xff0c;执行service服务中的逻辑流程。 service通过Context.startService()方法开始&#xff0c;通过Context.stopService()方法停止&#xff1b;也可以通过Service.stopSelf()方法或者Service.stopSelfResult()方法来停…

SO_BINDTODEVICE 使用

就绑定到了接口"lmi40"上,所有数据报的收发都只经过这个网卡. 对于SOL_BINDTODEVICE的总结如下: &#xff08;1&#xff09; 对于TCP套接口、UDP套接口、RAW套接口&#xff0c;可以通过SO_BINDTODEVICE套接口选项将套接口绑定到指定的网络接口上。绑定之后&…

startService与bindService的区别

Android执行Service有两种方法&#xff0c;一种是startService&#xff0c;一种是bindService。下面让我们一起来聊一聊这两种执行Service方法的区别。 1、生命周期上的区别 执行startService时&#xff0c;Service会经历onCreate->onStartCommand。当执行stopService时&…

startService和bindService的区别

首先看下其生命周期的区别&#xff1a; 生命周期&#xff1a; onCreate → startCommand → onDestroy onCreate → onBind→onUnBind→ onDestroy 静态绑定对应着startService&#xff1b;动态绑定对应着bindService&#xff0c;静态有自己独立的生命周期&#xff0c;动态会…