当前位置:数据库 > SQLServer >>

为什么我的java程序连接不到sql server 2008数据库 ,运行时总是提示

运行时总是提示java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDeriver。我已引入jar包我的java程序如下: import java.util.*; import java.sql.*; import javax.swing.*; import javax.swing.*; public class Test2 extends JFrame{ //rowData用来存放行数据 //columnNames存放列名 Vector rowData,columnNames; //放在中间 JTable jt=null; JScrollPane jsp=null; //定义操作数据库 PreparedStatement ps=null; Connection ct=null; ResultSet rs=null; public static void main(String[] args) { // TODO Auto-generated method stub Test2 t=new Test2(); } public Test2() { columnNames=new Vector(); //设置列名 columnNames.add("学号"); columnNames.add("名字"); columnNames.add("性别"); columnNames.add("年龄"); columnNames.add("籍贯"); columnNames.add("系别"); rowData=new Vector(); try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDeriver"); ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=学生成绩管理","",""); ps=ct.prepareStatement("select * from stu"); rs=ps.executeQuery(); while(rs.next()) { //rowData可以存放多行 Vector hang=new Vector(); hang.add("rs.getString(1)"); hang.add("rs.getString(2)"); hang.add("rs.getString(3)"); hang.add("rs.getInt(4)"); hang.add("rs.getString(5)"); hang.add("rs.getString(6)"); //加入到rowData rowData.add(hang); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { if(rs!=null) rs.close(); if(ps!=null) ps.close(); if(ct!=null) ct.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //初始化JTable jt=new JTable(rowData,columnNames); //初始化jsp jsp=new JScrollPane(jt); //把jsp放到JFrame this.add(jsp); this.setSize(400,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } 我的数据库能正常运行
补充:我的数据库是设置为windows身份登录的
追问:按照您建议,我改了("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=学生成绩管理","","");
运行时出现以下错误:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.test1.Test2.<init>(Test2.java:47)
	at com.test1.Test2.main(Test2.java:26)
答案:你的类名写错了:

sqlserver2008的jdbc类名是(文件是:sqljdbc.jar、或sqljdbc4.jar):
com.microsoft.sqlserver.jdbc.SQLServerDriver

你写的这个类是sqlserver2000的jdbc:
com.microsoft.jdbc.sqlserver.SQLServerDeriver
其他:("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=学生成绩管理","","");
这句话,建议你把数据库名字改为英文,因为这个可能会存在编码问题,另外你装数据库的时候如果选择双模式应该会有个sa账户,你这个帐号密码怎么没填?
,把错误发上来,有可能是tcp/ip没开,你不发详细的错,不大清楚。 最好还是用用户名.密码的方式访问.. 除了上面的兄弟的注意事项外,还要提醒下就是表名千万不能有数字!! 

上一个:我的sql server 2005还少了什么组件
下一个:SQL SERVER 只有年月的时间

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,