为什么我的java程序连接不到sql server 2008数据库 ,运行时总是提示
运行时总是提示java.lang.ClassNotFoundException:com.microsoft.jdbc.sqlserver.SQLServerDeriver...
运行时总是提示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身份登录的 展开
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=学生成绩管理","","");
这句话,建议你把数据库名字改为英文,因为这个可能会存在编码问题,另外你装数据库的时候如果选择双模式应该会有个sa账户,你这个帐号密码怎么没填?
,把错误发上来,有可能是tcp/ip没开,你不发详细的错,不大清楚。
这句话,建议你把数据库名字改为英文,因为这个可能会存在编码问题,另外你装数据库的时候如果选择双模式应该会有个sa账户,你这个帐号密码怎么没填?
,把错误发上来,有可能是tcp/ip没开,你不发详细的错,不大清楚。
追问
按照您建议,我改了("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.(Test2.java:47)
at com.test1.Test2.main(Test2.java:26)
追答
疏忽大意了,不过这下我也跟加清楚了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好还是用用户名.密码的方式访问..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
除了上面的兄弟的注意事项外,还要提醒下就是表名千万不能有数字!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询