求助各位大神,这个程序哪里有问题 1C

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class test8 {
public static void main(String[] args)
{
Connection ct=null;
Statement sm=null;
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=news", "sa", "123456");
sm=ct.createStatement();
int i=sm.executeUpdate("insert into xinwen values('111','159','159')");
if(i==1)
{
System.out.print("增加成功");
}
else
{
System.out.print("增加失败");
}
}
catch(Exception e){
}
finally {

    }
}

}

错误内容:Exception in thread "main" java.lang.NoSuchMethodError: sun.security.ec.NamedCurve.(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V
at sun.security.ec.CurveDB.add(CurveDB.java:147)
at sun.security.ec.CurveDB.(CurveDB.java:171)
at sun.security.ec.SunECEntries.putEntries(SunECEntries.java:72)
at sun.security.ec.SunEC.(SunEC.java:76)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at java.lang.Class.newInstance(Class.java:442)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:221)
at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
at sun.security.jca.ProviderList.getProvider(ProviderList.java:233)
at sun.security.jca.ProviderList.getService(ProviderList.java:331)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:157)
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156)
at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1590)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1323)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at test8.main(test8.java:11)

sql

6个回答

NoSuchMethodError,有可能是导包错误!

haizhiziNO1
haizhiziNO1 应该导入什么包?
大约 4 年之前 回复

从功能上看,主要使用了 SQL Server,是否需要导入 SQL Server 相关的包呢!
再确认一下 sun.security.ec.NamedCurve 相关的东东吧。

haizhiziNO1
haizhiziNO1 怎么确认,不懂!
大约 4 年之前 回复
haizhiziNO1
haizhiziNO1 怎么确认,不懂!
大约 4 年之前 回复

你这就是一个简单的sql server的jdbc的代码,代码看不出问题。
你换一个jdbc sql server的驱动jar试试,你这个jar好像用到了安全加密相关的jar,sun.security.ec.NamedCurve这个类是不可见的。
还有就是sql server的一些相关配置,参考:http://blog.csdn.net/stewen_001/article/details/19553173/

可能是驱动jar包的问题吧

java.lang.NoSuchMethodError: sun.security.ec.NamedCurve

检查NamedCurve所在的包,是否冲突或没有成功被项目引用!

xiesq5112
心随自在飞 回复haizhiziNO1: 双击Tomcat服务器编辑。单击“打开启动配置”链接来编辑启动配置。选择“路径”选项卡。在启动项额外的JRE系统库,并删除它。
大约 4 年之前 回复
haizhiziNO1
haizhiziNO1 怎么检查?
大约 4 年之前 回复

看你jdk版本还有导入的驱动包是否匹配,你是用的这【sqljdbc.jar】【sqljdbc4.jar】两个包中的哪一个,如果用的是【sqljdbc4.jar】这个包,那么
这一句:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
就要改为Class.forName("com.jdbc.sqlserver.SQLServerDriver");
你可以试试看

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问