学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

关于java写入sql2005数据库的问题

关于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.commit();
            con.close();
        }
        catch(Exception e){System.out.print("b");}
    }
        public static void main(String []args){
           ConnectionDataBase cc=new ConnectionDataBase();
           cc.writeData();
        }
}

TOP

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");你在创建SQLServer的实例时就已经错了,好好看一下数据库的连接!
知识改变命运!!!

TOP

谢谢楼上朋友的帮忙
既然是那里错了,那为什么写查询的SQL语句就是正确的呢,还有就是,如果是那里错,为什么输出的异常信息是b,而不是c呢

TOP

程序换成了这样
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.commit();
            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超出范围,实在不明白啊

TOP

发新话题