我用oracle数据库,建了两个表结构如下:

单位表:id_danwei number ,name_danwei varchar2 ,其中id_danwei是主键。

人员表:id_renyuan number, id_danwei number , name varchar2 ,其中id_renyuan是主键,id_danwei是外键。

我用jsp对表管理,删除单位表中id_danwei=3的记录时,先查看人员表里是否有id_danwei=3的记录,如果有则不允许删除,如果没有则可以删除。

代码如下:

删除

int id_danwei=Integer.parseInt(request.getParameter( "id_danwei "));

if(id_danwei!=0){

String sql_renyuan= "select id_renyuan from renyuan where id_danwei= "+id_danwei;

Statement stmt_renyuan=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

ResultSet rs_renyuan=stmt_renyuan.executeQuery(sql_renyuan);

rs_renyuan.next();

int id_renyuan=rs_renyuan.getInt(1);

rs_renyuan.close();

stmt_renyuan.close();<

我用oracle数据库,建了两个表结构如下:单位表:id_danwei number ,name_danwei varchar2 ,其中id_danwei是主键。人员表:id_renyuan number, id_danwei number , name varchar2 ,其中id_renyuan是主键,id_danwei是外键。我用jsp对表管理,删除单位表中id_danwei=3的记录时,先... ResultSetMetaData md = (ResultSetMetaData)rs.getMetaData(); int columnCount = md.getColumnCount(); while(rs.next()){ Map<String,Object>map = new HashMap<String... *整数:int ,分二无符号和有符号,长度无意义。 *小数:decimal,如decimal(5,2)表示共存5位数,小数占2位,整数占3位。 *字符串:varchar,范围(0~65533),一个中文或一个字母都占一个字符。 *日期时间:datetime,范围(1000-01 00:00:00 ~ 9999-12-31 23:59:59) *主键(primary key):唯一的标识一条记录,一般设置为无符号int型且可自动生成,物理上存储的顺序。 *非空(not null):此字段不 例如:a,b两张表。           a是课程id,课程名。b是课程id,作业id。 那么你在查找的时候,先查找a表,遍历出所有的课程,然后根据id号去查找作业。那么就会存在结果集 耗尽 的情况。因为,a中存在的课程,b中课程可能没有。你必须做判断。 2,存在多次交叉使用Connection 你在做查询的时候,一次查询没有结束,另一次有开始查询操作,有时候会出现
这里写自定义目录标题 java . sql . SQLException 结果 集已 耗尽 插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 java . sql . SQLException 结果 集已 耗尽 今天在使用 java 连接 Oracle 数据库的时候出现了这样的异常错误: java . sql . SQL Exceptio
### 回答1: 这个错误是由于在尝试将一个非序列化的对象传递给一个需要序列化对象的 方法 或类时引起的。在 Java 中,只有实现了Serializable接口的对象才能被序列化和反序列化。如果尝试将一个非序列化的对象传递给需要序列化对象的 方法 或类,就会抛出这个异常。要 解决 这个问题,需要确保传递给 方法 或类的对象都是可序列化的。 ### 回答2: 这个错误是 Java 程序中使用了不可序列化的对象作参数导致的。具体地说, Java 程序在执行过程中将对象作为参数提交给了 SQL 查询操作,而这个对象并不是可序列化的,因此就导致了这个异常的出现。 在 Java 编程中,序列化是指将一个对象转换成可序列化的格式,便于在程序运行过程中进行存储、传输或者持久化操作。 Java 提供了Serializable接口,可以让一个对象进行序列化操作。如果一个对象没有实现Serializable接口,则这个对象就不能被序列化,会导致抛出 java .io.notserializableexception异常。 在 Java 程序中,如果要将可序列化的对象作为参数传递给 SQL 查询操作,可以通过在 Java Bean中定义一个get 方法 ,将对象转换成ByteArrayOutputStream类型,再将其作为参数传入 SQL 查询操作,这样就可以避免了不可序列化的对象作为参数导致的异常。 总之,要确保在 Java 程序中使用的对象都是可序列化的,否则就会导致程序出现异常。如果程序中确实有不可序列化的对象需要传递给 SQL 查询操作,可以通过将其转换成ByteArrayOutputStream类型的方式 解决 。 ### 回答3: SQLException Java 编程中常见的异常类型之一。这种异常通常是由于数据库访问操作失败引起的。而invalid argument value表示无效的参数值, java .io.notserializableexception即为非序列化异常。 在数据库操作中,当程序中的数据类型无法转化为数据库所能接受的数据类型时,即会抛出invalid argument value异常。而在 Java 中,Serializable是一个接口,若一个对象要被序列化或反序列化,则必须实现该接口。若一个对象无法实现序列化,则会抛出 java .io.notserializableexception异常。 综上所述, java . sql . sqlexception : invalid argument value: java .io.notserializableexception异常的出现,一般是由于程序中传入了无法转化为数据库所能接受的数据类型的参数,并且该参数所对应的 Java 对象无法实现序列化所引起的。因此,可以从以下几个方面 解决 这个异常: 1.确保程序中传入的数据类型能够被正确转化为数据库中能接受的数据类型。 2.检查 Java 对象是否实现了Serializable接口,若没有,则尝试实现该接口。 3.检查代码中是否存在其他异常引起的异常,例如null指针异常和数组下标越界异常等,这些异常也可能间接导致 java . sql . sqlexception : invalid argument value: java .io.notserializableexception异常的出现。 4.调试程序,通过打印异常信息以及程序运行时的变量状态等信息,找出引起异常的具体原因,并进行相应的修复。