呵呵!你一定是用PreparedStatement.excuteQuery()来运行的吧!你试试用executeUpdate()方法来运行!返回值是一个int型,具体可以看看api文档!

解决方案 »

  1.   

    用的是stmt.executeUpdate(sql),返回值为int类型 1,但是数据库中并没有增加数据。
      

  2.   

    可不可以把你的这段代码贴一下?我认为应该是程序有问题,而且报的错是因为resultset的问题。
      

  3.   

    首先谢谢各位!
    内容如下:
    数据库:urldb
    表:url
    字段:id(主键),keyword(文本类型),url(文本类型)
    代码:
    StringBuffer sql=new StringBuffer();
    Connection con_urldb=cbc.getConnection();
    //con_urldb已经测试了,有效
    url="testurl";
    sql.append("INSERT INTO url (keyword,url) VALUES (");
    sql.append("'testkey'");
    sql.append(",");
    sql.append("'"+url+"'");
    sql.append(")");
    System.out.println(sql.toString());
    stmt = con_urldb.createStatement();
    int i=stmt.executeUpdate(sql.toString());
    System.out.println(i);
    结果是:
    INSERT INTO url (keyword,url) VALUES ('testkey','testurl')
    1
      

  4.   

    看看你的CONNECTION的AUTOCOMMIT属性如何设置的,你的cbc类的代码也贴出来看看.
      

  5.   

    cbc类的代码如下,拜托大家看看:
    import java.sql.*;public class CreateBrigeConnection
    {
    private Connection con=null;
    private String data_source_name;
    private String url;
    private String user_name=null;
    private String password=null;
    /** @param dsn the dsn is data source name, this class will use it to create a JDBC-ODBC connection.
    *   @param user_name is user name,we can use it to access the db.
    *   @param pwd is password of user_name.
    *   @exception EmptyDSNException the, construction will throw a this exception, if the DSN is empty.
    */
    public CreateBrigeConnection(String dsn,String user_name,String pwd) throws EmptyDSNException
    {
    if (dsn=="")
    throw new EmptyDSNException();
    else
    {
    data_source_name=dsn;
    url="jdbc:odbc:"+dsn;
    this.user_name=user_name;
    password=pwd;

    try
    {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con=DriverManager.getConnection(url,user_name,pwd);
    }
    catch(ClassNotFoundException e)
    {
    System.out.println(e.toString());
    }
    catch(SQLException e)
    {
    System.out.println(e.toString());
    }
    }
    }

    /** @param none
    *   @return con,the con is a java.sql.Connection object that will be use for you.
    */
    public Connection getConnection()
    {
    return con;
    }

    public void end()
    {
    try
    {
    con.close();
    }
    catch(SQLException e)
    {
    System.out.println(e.toString());
    }
    }
    }
      

  6.   

    那你把这句sql语句直接在数据库中运行看看!
      

  7.   

    sql语句直接在数据库中运行后可以插入数据。
      

  8.   

    那就奇怪了!你的程序运行后executeUpdate()得到的是1,表明成功插入1条,怎么会没有插入呢?你换个数据再试试看吧!程序我想没问题。
      

  9.   

    哎呀!会不会是因为你的数据库不是autocommit的,而你在关闭connection前没有commit?在你executeUpdate后调用一下con_urldb.commit();试试!
      

  10.   

    我又加了一句(在executeUpdate()后面):
    con_urldb.commit();
    还是没有变化
      

  11.   

    你用同样的数据连续运行两次这个程序,如果输出的都是
    INSERT INTO url (keyword,url) VALUES ('testkey','testurl')
    1
    则表明同样的数据可以插入两次,由于主键的原因,这是不可能的,所以我想到可能没有commit,不过现在照你说的,就不是这个原因了,真让人无法理解!
      

  12.   

    我把你的程序修改了一下,换乘我的driver和数据库内容后是可以运行的,要不,你用select试试,看看可不可以运行成功!
      

  13.   

    shihb请看:
    用select可以检索数据,没问题。但还是不能插入数据。
    另,你用的驱动是什么,如方便,可否告诉我下载地址或把驱动mail给我,我用的是ms access 2000。mail是[email protected]。谢谢。
      

  14.   

    呵呵!我用的数据库是oracle,我只是用了你的那个cbc而已!
    还有!如果你的select可以,说明你的驱动和连接都没有问题,应该不需要换什么其它的驱动,还有,access是不要user和password的,你的那个方法根本不需要什么password和user。嗬嗬!
      

  15.   

    shihb请看:
    写那个cbc类的时候,主要是自己比较懒得记住哪些桥连接的步骤,所一些了一个自己用。访问access可能不用密码,但是access有用户管理功能,另外,cbc也可以用来连接别的数据库,因为它是面向odbc的,和具体的数据库没什么关系,所以我想有pws和username比较好一些,呵呵。谢谢你.另外,也谢谢所有帮助我的热心人。
      

  16.   

    呵呵!可是你在里面的driver是固定的呀!你应该把driver也以一个变量传进去!
    现在问题解决了就好!我还是不明白怎么回事!不过我想多半是数据库设定的问题了吧!
      

  17.   

    我也碰到过.
    解决办法:
    执行完insert into 后,再执行一次选择 select 就有了
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]