标题:关于java写入sql2005数据库的问题
只看楼主
热学男儿
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2007-4-28
 问题点数:0 回复次数:3 
关于java写入sql2005数据库的问题
以下是小弟写的一段在sql2005数据库中插入数据的程序,但总是输出catch捕捉异常的语句块中的内容,就是影响不到数据库,请大家帮我看看,我到底错在哪了呢。前提,我的数据源设置都是对的,因为写查询语句是正常的。
import java.sql.*;

public class ConnectionDataBase
{
    public void writeData()
    {
        Connection con=null;
        PreparedStatement pstm=null;
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        }
        catch(ClassNotFoundException e){System.out.println("c");}
        try
        {
            con=DriverManager.getConnection("jdbc:odbc:computer","sa","");
            pstm=con.prepareStatement("insert into image_1(bb) values(@bb)");
            pstm.setInt(3, 5);
            pstm.executeUpdate();
            pstm.close();
            ();
            con.close();
        }
        catch(Exception e){System.out.print("b");}
    }
        public static void main(String []args){
           ConnectionDataBase cc=new ConnectionDataBase();
           cc.writeData();
        }
}
搜索更多相关主题的帖子: java 数据库 con catch java 数据库 con catch 
2008-04-26 00:13
fqj793
Rank: 1
等 级:新手上路
威 望:2
帖 子:228
专家分:0
注 册:2006-12-9
得分:0 
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");你在创建SQLServer的实例时就已经错了,好好看一下数据库的连接!

知识改变命运!!!
2008-04-26 08:38
热学男儿
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2007-4-28
得分:0 
谢谢楼上朋友的帮忙
既然是那里错了,那为什么写查询的SQL语句就是正确的呢,还有就是,如果是那里错,为什么输出的异常信息是b,而不是c呢
2008-04-26 11:48
热学男儿
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2007-4-28
得分:0 
程序换成了这样
import java.sql.*;

public class ConnectionDataBase
{
    public void writeData()
    {
        Connection con=null;
        PreparedStatement pstm=null;
        try
        {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        }
        catch(ClassNotFoundException e){System.out.println("c");}
        try
        {
            con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=image");
            System.out.println("数据库连接成功");
            pstm=con.prepareStatement("insert into image_1(ID) values(@ID)");
            pstm.setString(1,"11");
            pstm.execute();
            pstm.close();
            ();
            con.close();
        }
        catch(SQLException se)
        {
            se.printStackTrace();
        }
    }
    public static void main(String []args)
    {
        ConnectionDataBase cc=new ConnectionDataBase();
        cc.writeData();
    }
}
还是错误,以下是错误信息:com.microsoft.sqlserver.jdbc.SQLServerException: 索引 1 超出范围。
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setterGetParam(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setString(Unknown Source)
    at ConnectionDataBase.writeData(ConnectionDataBase.java:20)
    at ConnectionDataBase.main(ConnectionDataBase.java:34)

说这里的pstm.setString(1,"11");索引1超出范围,实在不明白啊
2008-04-26 17:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-211143-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.129668 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved