java初学者 加入小组

294个成员 65个话题 创建时间:2015-02-03

请教各位了:java对数据库操作的问题

发表于2016-11-09 2605次查看

if(objParams!=null){
            for(int i=0;i<objParams.length;i++)
            {
                ps.setObject(i+1, objParams[i]);
            }
        }

编译通过,但运行时提示ps.setObject(i+1, objParams[i]);出错,出错信息如下:

Exception in thread "main" java.lang.NoClassDefFoundError: microsoft/sql/DateTim
eOffset
        at com.microsoft.sqlserver.jdbc.JavaType.<clinit>(DataTypes.java:470)
        at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setObjectNoTy
pe(SQLServerPreparedStatement.java:910)
        at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setObject(SQL
ServerPreparedStatement.java:921)
        at DBHelper.getRS(DataBaseDemo.java:41)
        at DataBaseDemo.sel(DataBaseDemo.java:192)
        at DataBaseDemo.Options(DataBaseDemo.java:114)
        at DataBaseDemo.selOption(DataBaseDemo.java:97)
        at DataBaseDemo.main(DataBaseDemo.java:71)
Caused by: java.lang.ClassNotFoundException: microsoft.sql.DateTimeOffset
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 8 more

我尝试将ps.setObject改成直接写出一个SQL语句就不会报错,用prepareStatement的setObject方法就会报错,拜托各位了。

1回复
发表回复
你还没有登录,请先 登录或 注册!