当前位置:  技术问答>java相关

这个程序怎么了,在线等待,设了setAutocommit(true),为什么不能更新数据库

    来源: 互联网  发布时间:2015-06-05

    本文导语:  //:CreateCoffee.java //an example using to create and update . import java.sql.*; public class CreateCoffee {     public static void main(String args[]) {         String url = "jdbc:odbc:coffees2";                  String createString; ...

//:CreateCoffee.java
//an example using to create and update .
import java.sql.*;
public class CreateCoffee {
    public static void main(String args[]) {
        String url = "jdbc:odbc:coffees2";
        
        String createString;
        String myLogin="yuan";
        String myPassword="132440";
        Connection con;
        Statement stmt;
        int[] a={1,102,130,4,16};
        createString = "create table COFFEES " +
                            "(COF_NAME VARCHAR(32), " +
                            "SUP_ID INTEGER, " +
                            "PRICE FLOAT, " +
                            "SALES INTEGER, " +
                            "TOTAL INTEGER)";
        //using to load driver:
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        } catch(java.lang.ClassNotFoundException e) {
            System.err.print("ClassNotFoundException: ");
            System.err.println(e.getMessage());
        }
        //using to create:
      try {
            con = DriverManager.getConnection(url, myLogin, myPassword);
            stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
              ResultSet.CONCUR_UPDATABLE);
            stmt.executeUpdate(createString);
            stmt.close();
            con.close();
        }catch(SQLException ex) {
            System.err.println("SQLException: " + ex.getMessage());
        }
        //using to update:    
        try{
             con = DriverManager.getConnection(url, myLogin, myPassword);
             stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
              ResultSet.CONCUR_UPDATABLE);
            // 允许自动更新
            con.setAutoCommit(true);

            ResultSet re = stmt.executeQuery("select * from coffees2");
            re.absolute(2);
            re.updateInt(1,a[0]);
            re.updateInt(2,a[1]);
            re.updateInt(3,a[2]);
            re.updateInt(4,a[3]);
            re.updateInt(5,a[4]);System.out.println("love");
            re.updateRow();
            while(re.next()){System.out.println("love");
              System.out.println(re.getString(1)+","+                                                             re.getString(2)+","+re.getString(3)+","+re.getString(4));
                
            }
/*          String updateString = "UPDATE COFFEES " +
"SET SALES = 90 " ;

            stmt.executeUpdate(updateString);System.out.println("love");*/
            re.close();
            stmt.close();
            con.close();
        } catch(SQLException ex) {
            System.err.println("SQLException: " + ex.getMessage());
        }
/*     try{
          Thread.currentThread().sleep(5*1000);
        }catch(InterruptedException e){}*/
    }
}///:~
出错提示:
[Microsoft ][JDBC-ODBC ...]非法的游标状态

|
1.你这个程序有几个问题,首先,你有必要每次操作都关闭连接么?(con),那样重复建立数据库连接是非常消耗系统资源的.

2.所有的连接都是默认自动提交事务的,也就是说,除非你建立了事务(setAutoCommit(false)),不然,提交是没有意义的.

3.你的第一个sql语句是create,是对数据操作的,怎么可能用上可写游标呢?
  游标是用在表一级(包括视图等)操作的,我真不知道你创建一个stmt用上它干什么,实在是风马牛不相及呢!

    
 
 

您可能感兴趣的文章:

  • 急问:如何得到linux下c程序运行中的IO等待时间?
  • 如何让java调用外部程序,并且不等待外部程序执行完毕,直接返回?
  • 如何在C程序中调用shell脚本程序,并等待其执行完毕
  • 急!急!!急!!!如何将键盘输入的字符读入程序中???---在线等待---
  • 如何调用其他程序,比如说"notepad.exe",在线等待,急!
  • 程序异常之后需要等待x秒才可以再次启动监听端口?
  • java应用程序的后期发布问题(在线等待)
  • 新手提问 在线等待,为什么我的程序中 new 操作符出错?
  • 请问java应用程序怎样打开网页(在线等待)
  • 如何运行程序(在线等待)
  • 在程序运行中,如何得到JVM的版本号?在线等待
  • Linux下如何卸载应用程序?在线等待!!!!!!
  • 初学者的问题:如何用jb6给程序打包?在线等待!
  • 简单的程序问题,请帮忙,急! “|“,在线等待
  • 在linux下jdbc驱动程序找不到??在线等待.....
  • LINUX下如何获取程序名称,在线等待,急!
  • 在线等待,请问在JDK中如何画同心圆?用什么方法?如有程序范例不胜感激!
  • 急,在线等待,Java程序怎样在linux下通过脚本启动时自动运行?
  • java.io 莱鸟问题:程序运行时用到的文件应该放在哪个目录下?在线等待。。。
  • 等待大侠出手相救,在多线程程序中执行system函数导致CPU利用率不停的增长的问题。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 学了linux程序设计后能不能编写出应用程序
  • applet程序不能实现与application程序之间的通信,怎么办呢?
  • 为什么在我的引导程序setup.asm里,初始化8253定时器后,程序不能往下运行,而取消初始化后能???
  • 屏幕不能显示,怎么用gdb调试程序?
  • 请教cgi程序不能使用popen的问题
  • Linux安装不能初始图形程序,Why?在线等.
  • java能不能编写单独运行的程序?
  • 在linux下用CC编译的程序不能执行
  • >>>>> 程序移动目录有不能运行》》》》》
  • 100分请帮忙,我不能编译servlet程序
  • 为什麽我的程序不能用 ^C 来中断?????????
  • telnet登陆目标板之后 不能运行目标板自带的程序
  • 为什么我写的应用程序不能持续运行?
  • 谁用友善之臂的板子,./应用程序 为什么不能运行程序
  • c++程序在solairs下不能运行,求教!
  • 在redhat7.2中用gcc命令编译程序 却不能运行
  • 为什么GCC编译过的C程序,为什么不能运行。
  • 为什么我下载的 “SQL Server 2000 JDBC 驱动程序” 不能安装啊?
  • lunix不能编译程序???急!急!急!
  • 用记事本写的程序为什么不能转化成java格式的
  • 简单的程序问题,请帮忙,急! “|“,在线等待 iis7站长之家
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3