-
Java结果集以关闭_java – SQLException:结果集已关闭
2021-03-13 03:41:46在实施过程中,我试图创建一个功能,使学生能够注册他们的科目,因此该功能基本上搜索学生已完成其先决条件的科目.所以我写了下面的代码:package GUIs;import java.sql.*;import javax.swing.*;public class AddSub...我是使用NetBeans的
Java初学者,我试图创建类似于教师注册系统的东西.我使用SQL Server 2005来创建数据库.
在实施过程中,我试图创建一个功能,使学生能够注册他们的科目,因此该功能基本上搜索学生已完成其先决条件的科目.所以我写了下面的代码:
package GUIs;
import java.sql.*;
import javax.swing.*;
public class AddSubToStd extends javax.swing.JFrame {
final void FillList1(){
try{
String url = "jdbc:sqlserver://localhost:1433;databaseName=BIS";
String username = "sa";
String password = "*****";
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();
DefaultListModel DLM = new DefaultListModel();
ResultSet res = stmt.executeQuery("SELECT * FROM Students");
while(res.next()){
DLM.addElement(res.getString("ID"));
}
List1.setModel(DLM);
}
catch(SQLException e){
JOptionPane.showMessageDialog(null, e.toString());
}
}
final void FillList2(){
try{
String url = "jdbc:sqlserver://localhost:1433;databaseName=BIS";
String username = "sa";
String password = "*****";
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();
DefaultListModel DLM = new DefaultListModel();
String Query = "SELECT * FROM FinishedCourses WHERE ID = '"+List1.getSelectedValue()+"'";
ResultSet res = stmt.executeQuery(Query);
ResultSet res1;
String S_Code;
String Query1;
while(res.next()){
S_Code = res.getString("S_Code");
Query1 = "SELECT * From Subjects WHERE Prerequisite = '"+S_Code+"'";
res1 = stmt.executeQuery(Query1);
while(res1.next()){
DLM.addElement(res.getString("S_Code"));
}
}
conn.close();
stmt.close();
List2.setModel(DLM);
}
catch(SQLException e){
JOptionPane.showMessageDialog(null, e.toString());
}
}
public AddSubToStd() {
initComponents();
FillList1();
}
但我得到SQLException,当我尝试调用FillList2()时,结果集已关闭
private void UpdateAllowedActionPerformed(java.awt.event.ActionEvent evt) {
try{
String url = "jdbc:sqlserver://localhost:1433;databaseName=BIS";
String username = "sa";
String password = "*****";
Connection conn = DriverManager.getConnection(url,username,password);
FillList2();
}
catch(SQLException e){
JOptionPane.showMessageDialog(null, e.toString());
}
}
有人请帮忙.
-
Java结果集以关闭_显示结果集已关闭,正确顺序是什么
2021-03-13 03:41:41该楼层疑似违规已被系统折叠隐藏此楼查看此楼求大神帮忙看一下下面的很多条sql语句的顺序,不知道是不是顺序的错误package 读者具体功能实现;import java.awt.BorderLayout;import java.awt.GridLayout;import java....该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求大神帮忙看一下下面的很多条sql语句的顺序,不知道是不是顺序的错误
package 读者具体功能实现;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.table.JTableHeader;
import 对象.book;
import 对象.user;
import 界面类.userframe;
public class returnbook extends JFrame implements ActionListener {
JPanel jp1,jp2,jp3,jp4;
static Connection con = null;
Statement sm1,sm2,sm3,sm4,sm5,sm6,sm7,sm8;
JLabel jl1,jl2,jl3,jl4,jl5;
JButton **1,**2;
JTextField jtf1,jtf2,jtf3,jtf4,jtf5;
JComboBox jcb1,jcb2,jcb3,jcb4;
public static String dateStr;
public static Date back_date;
JScrollPane jsp;
ResultSet rs1,rs2,rs3,rs4;
public static void main(String[] args) {
returnbook rb=new returnbook ();
}
public returnbook (){//先处理上面
String [] str1={"数学类","文学类","体育类","外语类","史学类","文化生活类","教育类","医学类"};
String [] str2={"罗天益医学全书","体适能基础理论","文化生活与生活的文化","围城","新三国志","红与黑","概率论","文化生活与生活的文化"};
String [] str3={"钱钟书","阮伯仁","许敬生","司汤达","刘浩然","赵凯旋","南宫民","丁国昌"};
String [] str4={"清华大学出版社","北京大学出版社","外语研究社出版社","南开大学出版社","中国教育出版社","中国科学出版社","中国中医药出版社","人民体育出版社"};
jcb1 = new JComboBox(str1);
jcb1.addActionListener(this);
jcb2 = new JComboBox(str2);
jcb2.addActionListener(this);
jcb3 = new JComboBox(str3);
jcb3.addActionListener(this);
jcb4 = new JComboBox(str4);
jcb4.addActionListener(this);
JPanel jp1=new JPanel();
jp1.setLayout(new GridLayout(2,2));
jp1.add(jcb1);
jp1.add(jcb2);
jp1.add(jcb3);
jp1.add(jcb4);
JTabbedPane jtp=new JTabbedPane();
JPanel jp5=new JPanel();
jtp.add("条件查询",jp1);
jtp.add("全局查询",jp5 );
this.add(jtp,BorderLayout.NORTH);
//处理中部
Vector cn=new Vector<>();//定义列名向量
cn.add("图书编号");
cn.add("图书类型");
cn.add("图书名称");
cn.add("单价");
cn.add("出版社");
cn.add("出版日期");
cn.add("作者");
cn.add("库存数量");
Vector> cn3=new Vector<>();//定义表格数据向量
Vector cn2=new Vector<>();//定义行向量
cn2.add("a");
cn2.add("b");
cn2.add("c");
cn2.add("d");
cn2.add("e");
cn2.add("f");
cn2.add("g");
cn2.add("h");
cn3.add(cn2);
JTable jt1=new JTable (cn3,cn);
JTableHeader jth=jt1.getTableHeader();
this.add(jt1);
JScrollPane jsp=new JScrollPane (jt1);
this.add(jsp,BorderLayout.CENTER);
//处理下部
JPanel jp2=new JPanel ();
jp2.setLayout(new GridLayout(4,2));
JLabel jl1=new JLabel ("借书时间");
JLabel jl2=new JLabel ("规定时间");
JLabel jl3=new JLabel ("还书时间");
JLabel jl4=new JLabel ("罚款金额");
jtf1=new JTextField ();
jtf2=new JTextField ("60");
jtf3=new JTextField ();
jtf4=new JTextField ();
jp2.add(jl1);
jp2.add(jtf1);
jp2.add(jl2);
jp2.add(jtf2);
jp2.add(jl3);
jp2.add(jtf3);
jp2.add(jl4);
jp2.add(jtf4);
JPanel jp3=new JPanel ();
jp3.setLayout(new GridLayout(2,2));
JLabel jl5=new JLabel ("当前时间");
jtf5=new JTextField ();//输出当前时间
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jtf5.setText(df.format(new Date()));
JButton **1=new JButton ("归还");
**1.addActionListener(this);
JButton **2=new JButton ("退出");
**2.addActionListener(this);
jp3.add(jl5);
jp3.add(jtf5);
jp3.add(**1);
jp3.add(**2);
JPanel jp4=new JPanel ();
jp4.setLayout(new GridLayout(1,2));
jp4.add(jp2);
jp4.add(jp3);
this.add(jp4,BorderLayout.SOUTH);
this.setSize(525,600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setTitle("读者还书界面,当前用户为"+user.user_name+"正在使用本系统"); //设置标题
}
@Override
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource()==jcb1) {
System.out.println(jcb1.getSelectedItem().toString());
}
if (arg0.getSource()==jcb2) {
System.out.println(jcb2.getSelectedItem().toString());
}
if (arg0.getSource()==jcb3) {
System.out.println(jcb3.getSelectedItem().toString());
}
if (arg0.getSource()==jcb4) {
System.out.println(jcb4.getSelectedItem().toString());
}
if(arg0.getActionCommand().equals("归还")){
String UserName = "sa";
String Password = "sa";
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String Url = "jdbc:sqlserver://127.0.0.1;database=book3";
try {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e4) {
// TODO 自动生成的 catch 块
e4.printStackTrace();
}
System.out.println("数据库驱动加载成功");
con=DriverManager.getConnection(Url,UserName,Password);
} catch (SQLException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
try {
if(!con.isClosed()){
System.out.println("数据库连接成功");
}
} catch (SQLException e2) {
// TODO 自动生成的 catch 块
e2.printStackTrace();
}
sm1 = con.createStatement();
rs1 = sm1.executeQuery("select * from system_book where book_type='"+jcb1.getSelectedItem().toString()+"' or book_name='"+jcb2.getSelectedItem().toString()+"' or book_author='"+jcb3.getSelectedItem().toString()+"' or book_address='"+jcb4.getSelectedItem().toString()+"' ");
while(rs1.next()){
String v=rs1.getString("book_number");
String v1=rs1.getString("quantity");
String v3=rs1.getString("book_name");
int i = sm1.executeUpdate("update system_book set quantity=quantity+1 where book_number='"+v+"'");
if(i==1){
System.out.println("更新成功");
}
Statement sm2=con.createStatement();
rs2 = sm2.executeQuery("select rent_date from rent where book_number='"+v+"'");
while(rs2.next()){
String a=rs2.getString("rent_date");
System.out.println(a);
jtf1.setText(a);//得到借书时间
//得到还书时间
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jtf3.setText(df.format(new Date()));
String dateStr=df.format(new Date());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
long m = sdf.parse(dateStr).getTime() - sdf.parse(a).getTime();
int days=(int) m / (1000 * 60 * 60 * 24);
String a4=days+"";
if(days>60){//同时确定超期次数
int a5=days-60;
String a6=a5+"";
jtf4.setText("+a6+");//得到罚款
int i3 = sm2.executeUpdate("insert into returnbook values('"+user.user_name+"','"+jtf3.getText()+"','"+v+"','"+v1+"','"+a4+"','overbacktime+1')");
if(i3==1){
System.out.println("插入成功");
}
int f=sm2.executeUpdate("delete from rent where book_number='"+v+"'");
if(f==1){
System.out.println("删除成功");
}
int i1 = sm2.executeUpdate("insert into fine values('"+user.user_name+"','"+v+"','"+v3+"','"+a6+"','"+a4+"')");
if(i1==1){
System.out.println("插入成功");
}
int i11 = sm2.executeUpdate("update creditrating set creditrating=creditrating-1");
if(i11==1){
System.out.println("插入成功");
}
}
else {
String b="0";
int i2 = sm1.executeUpdate("insert into returnbook values('"+user.user_name+"','"+jtf3.getText()+"','"+v+"','"+v1+"','"+a4+"','"+b+"')");
if(i2==1){
System.out.println("插入成功");
}
jtf4.setText("0");//罚款为0
}
}
}
}
if(arg0.getActionCommand().equals("退出")){
new userframe();
}
}
}
-
java结果集关闭报错_java.sql.SQLException: 结果集已耗尽
2021-03-11 14:24:27问题描述:我在本机数据库测试没有问题,但是连接生产的数据库时会报错java.sql.SQLException:结果集已耗尽,报错的是sname=rs.getString("sname");这句,貌似代码也没什么问题啊,不...问题描述:我在本机数据库...问题描述:我在本机数据库测试没有问题,但是连接生产的数据库时会报错java.sql.SQLException:结果集已耗尽,报错的是sname=rs.getString("sname");这句,貌似代码也没什么问题啊,不...
问题描述:
我在本机数据库测试没有问题,但是连接生产的数据库时会报错java.sql.SQLException: 结果集已耗尽,报错的是sname = rs.getString("sname");这句,貌似代码也没什么问题啊,不解,请大家帮忙啊。。。
代码如下:
StringBuffer bf1 = new StringBuffer();
StringBuffer bf2 = new StringBuffer();
String sname = null;
String soperator = null;
String sql = "";
if(flg==0){
sql = "select soperator,sname from btc_operatorinfo where sorgid=\'"+sorgid+"\' order by sorgid";
}else{
sql = "select soperator,sname from btc_operatorinfo where sorgid=\'"+sl1orgid+"\' or sl1orgid=\'"+sl1orgid+"\'" +
" or sl2orgid=\'"+sl1orgid+"\' order by sorgid";
}
ResultSet rs = jdbccon.executeQuery(sql);
try {
while(rs.next()){
sname = rs.getString("sname");
soperator = rs.getString("soperator");
bf1.append(soperator+"-"+sname+",");
bf2.append(soperator+",");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
jdbccon.closeAll();
}
我在jdbccon.closeAll();里面已经关闭了所有和数据库相关的东西,包括rs
展开
-
Java连接数据库发生错误:结果集已关闭
2021-01-19 22:38:31Java连接数据库发生错误:结果集已关闭 解决方法:在返回结果集时,不要关闭Connection和Statement。Java连接数据库发生错误:结果集已关闭
解决方法:在返回结果集时,不要关闭Connection和Statement。
-
JAVA数据查询返回结果集_java查询数据库,显示结果集已关闭
2021-03-14 14:27:46该楼层疑似违规已被系统折叠隐藏此楼查看此楼java查询数据库,有两个查询语句,第二个查询语句以及别的语句要用到第一个查询语句的结果,然后结果集就显示关闭了,怎么办sm1 = con.createStatement();rs1 = sm1.... -
java 查询结果_java查询数据库,显示结果集已关闭
2021-03-21 09:51:55该楼层疑似违规已被系统折叠隐藏此楼查看此楼java查询数据库,有两个查询语句,第二个查询语句以及别的语句要用到第一个查询语句的结果,然后结果集就显示关闭了,怎么办sm1 = con.createStatement();rs1 = sm1.... -
java结果集关闭报错_请教一个java问题,结果集已关闭? 部分代码如下,请大神帮助?...
2021-03-11 14:24:45publicResultSetQuery(StringsqlStr){Connectionconn=null;Statementst=null;ResultSetrs=null;try{conn=this.getConnection();st=conn.createStatement();System.out.println("SQL:"...public ResultSet Query(Stri... -
java查询第一个结果_java查询数据库,显示结果集已关闭
2021-03-10 08:33:10该楼层疑似违规已被系统折叠隐藏此楼查看此楼java查询数据库,有两个查询语句,第二个查询语句以及别的语句要用到第一个查询语句的结果,然后结果集就显示关闭了,怎么办sm1 = con.createStatement();rs1 = sm1.... -
Java结果集以关闭_多个结果集与多个性能调用[关闭]
2021-03-13 03:41:45当涉及到两个查询(无论是否为EF)与一个具有两个结果集的查询(以及在数据读取器上使用 NextResult )时,您将获得一点,但实际上并不多 . 由于只有一个在另一个上方的开销只有非常小的减少,如果结果足够大,你可能会... -
java 关闭jdbc_java - 必须单独关闭JDBC结果集和语句,尽管之后Connection已关闭?...
2021-02-28 11:49:40java - 必须单独关闭JDBC结果集和语句,尽管之后Connection已关闭?据说在使用后关闭所有JDBC资源是一个好习惯。 但是,如果我有以下代码,是否有必要关闭Resultset和Statement?Connection conn = null;... -
db2 resultSet关闭时提示结果集已关闭异常
2016-11-25 11:41:13db2 resultSet关闭时提示结果集已关闭异常这个就是db2自己的行为特性,在所有行被取出来之后自动关闭。解决办法就是不去关闭它就好了。Problem(Abstract)After upgrading the JDBC driver from the Legacy JDBC Type... -
oracle 结果集已耗尽_JAVA--结果集已耗尽
2020-12-19 06:12:39有两个可能1、rs ,state和conn没有关闭rs.close(); state.close(); conn.close();if(rs!=null) rs.close; if(state!=null) state.close; if(conn!=null) conn.close;---流程import java.sql.Connection;Connection ... -
java while con_为什么会在while(rs1.next())报结果集已关闭
2021-02-28 11:29:37该楼层疑似违规已被系统折叠隐藏此楼查看此楼String UserName = "sa";String Password = "sa";String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";String Url = "jdbc:sqlserver://127.0.0.1;... -
JAVA--结果集已耗尽
2019-09-22 07:33:251、rs ,state和conn没有关闭 rs.close(); state.close(); conn.close(); if(rs!=null) rs.close; if(state!=null) state.close; if(conn!=null) conn.close; --- 流程 import java.sql.Connection; ... -
com.microsoft.sqlserver.jdbc.SQLServerException: 结果集已关闭
2012-09-01 21:19:42java"]ResultSet rs = dbAccess.querySQL("select * from Delivery_Payment_Method where Distribute_And_Pay_ID = '" + id + "'");[/code] 后来,我又增加了一个查询 [code="java&... -
com.microsoft.sqlserver.jdbc.SQLServerException: 结果集已关闭。
2012-01-17 16:40:21报这个错时因为我的java类里是ResultSet内嵌套ResultSet,但是用的同一个Statement,这样不行,得创建两个Statement -
【已解决】Exception in thread "main" java.sql.SQLException: 关闭的连接: next
2019-02-23 10:06:36原因大概就是在取结果集的时候,发现连接已经关闭导致了,连接关闭的原因大概可以分为两种:程序书写问题,连接池的连接时间问题。 本文主要是程序书写连接的方法处理有问题,如果大家检查不是程序书写的问题,可以... -
java文件流不关闭的后果_不知道Java类文件结构的同学,看这篇文章就够了
2020-12-02 08:32:53一、前言代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。经过多年的发展,目前的计算机仍然只能识别0和1,但是由于近10年内虚拟机以及大量建立在虚拟机之上的程序语言... -
sqlite java需要按照,什么是连接SQLite数据库的合适方法,执行准备好的语句并关闭与Java的连接?...
2021-04-08 11:22:26我有或曾经有过几个问题:数据库正忙-错误SQL错误或缺少数据库结果集已关闭如果我想防止这两个错误,应该使用哪种代码结构?我需要在试听区连接吗?我需要在哪里关闭连接?我需要在哪里关闭已准备好的报表?到现在为止,我... -
java 多次查询数据库_java – 多次查询数据库的首选方式?
2021-02-25 19:03:34是的,您可以重用Statement对象,但executeQuery返回的ResultSet对象已关闭已打开的结果集.By default, only one ResultSet object per Statement object can be openat the same time. Therefore, if the reading of ... -
java执行无参数的存储过程_oracle pl/sql之在java中调用无参的oracle存储过程
2021-03-16 22:45:04在java 中调用oracle的存储过程和jdbc的操作类似都是分以下几个步骤1:加载驱动2:链接数据库并获得一个数据库链接对象3:执行语句4:操作结果集5:关闭资源前提是:存储过程已写好create or replace procedure my_... -
java 调用存储过程无反应_oracle pl/sql之在java中调用无参的oracle存储过程
2021-03-22 15:24:13标签:在java 中调用oracle的存储过程和jdbc的操作类似都是分以下几个步骤1:加载驱动2:链接数据库并获得一个数据库链接对象3:执行语句4:操作结果集5:关闭资源前提是:存储过程已写好create or replace ... -
java面试题
2018-04-27 19:55:38游标是对查询出来的结果集作为一个单元来有效的处理,可以对结果集的当前行做修改。 select执行顺序? 答:from where group by having select order by Collection和Collections的区别? 答:Collection是集合... -
Java2核心技术第7版全两卷.pdf中文高清
2012-09-14 14:22:284.4.5 管理连接、语句和结果集 176 4.4.6 组装数据库 177 4.5 执行查询操作 180 4.6 可滚动和可更新的结果集 187 4.6.1 可滚动的结果集 188 4.6.2 可更新的结果集 190 4.7 元数据 193 4.8 行集 200 4.9 事务... -
Java NIO 聊天室
2015-09-06 12:40:38//rs结果集指向第一条记录的前一个位置 //如果第一条记录为空表示用户名或密码错误 if(rs.next()==true) { result=true; this.closeWindow(); } psm.close(); conn.close(); } ... -
oracle pl/sql之在java中调用无参的oracle存储过程
2015-10-22 16:36:00在java 中调用oracle的存储过程和jdbc的操作类似都是分以下几个步骤 ...4:操作结果集 5:关闭资源 前提是:存储过程已写好 create or replace procedure my_procedure is begin insert into emp(em... -
Java开源的下一代社区平台Symphony.zip
2019-07-19 04:36:02Apache Commons:Java 工具库集 Jodd:Java 工具库集 emoji-java:Java Emoji 处理库 User-Agent-Utils:Java User-Agent 解析库 Druid:Java 数据库连接池 FreeMarker:好用的 Java 模版引擎 Latke:Java ... -
eclipse链接oracle 报java.sql.SQLException: 列名无效 错误!
2017-08-01 08:41:59System.out.println("数据库连接已关闭!"); } catch (SQLException e) { e.printStackTrace(); } } } }...