星痕s 2018-07-23 03:22 采纳率: 33.3%
浏览 965
已结题

eclipse连接数据库问题:捕捉到异常“数据源错误”,帮帮孩子吧...代码如下

package text;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;

public class myWork extends JFrame {
//定义组件
private JScrollPane scpDemo;
private JTableHeader jth;
private JTable tabDemo;
private JButton btnShow;

private JPanel contentPane;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                myWork frame = new myWork();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public myWork() {
    /*setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);*/
    //窗体的相关属性的定义
    this.setSize(300,400);
    this.setLayout(null);
    this.setLocation(100,50);
    //创建组件
    this.scpDemo=new JScrollPane();
    this.scpDemo.setBounds(10, 50, 300, 270);
    this.btnShow=new JButton("显示数据");
    this.btnShow.setBounds(10, 10, 300, 30);
    //给按钮注册监听事件
    this.btnShow.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae){
            btnShow_ActionPerformed(ae);
        }
    });
    //将组件加入到窗体中
    add(this.scpDemo);
    add(this.btnShow);
    //显示窗体
    this.setVisible(true);

}
//点击按钮时的事件处理
public void btnShow_ActionPerformed(ActionEvent ae){
    //连接数据库及显示
    try{
        //获得连接
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection conn=DriverManager.getConnection("jdbc:odbc:localServer","mywork","");
        //建立查询条件
        String sql="select * from mywork";
        PreparedStatement pstm = conn.prepareStatement(sql);
        //执行查询
        ResultSet rs=pstm.executeQuery();
        //计算有多少条记录
        int count=0;
        while(rs.next()){
            count++;
        }
        rs=pstm.executeQuery();
        //将查询获得的记录数据,转换成适合生成JTable的数据形式
        Object[][] info=new Object[count][6];
        count=0;
        while(rs.next()){
            info[count][0]=Integer.valueOf(rs.getInt("Number"));
            info[count][1]=rs.getString("name");
            info[count][2]=rs.getString("classes");
            info[count][3]=rs.getString("math");
            info[count][4]=rs.getString("chinese");
            info[count][5]=rs.getString("english");
            count++;
        }
        //定义表头
        String[] title={"学号","姓名","班级","数学","语文","英语"};
        //创建JTable
        this.tabDemo=new JTable(info,title);
        //显示表头
        this.jth=this.tabDemo.getTableHeader();
        //将JTable加入到带滚动条的面板中
        this.scpDemo.getViewport().add(tabDemo);
    }catch(ClassNotFoundException cnfe){
        JOptionPane.showMessageDialog(null, "数据源错误","错误",JOptionPane.ERROR_MESSAGE);
    }catch(SQLException sale){
        JOptionPane.showMessageDialog(null, "数据库操作错误","错误",JOptionPane.ERROR_MESSAGE);

    }
}

}

  • 写回答

5条回答 默认 最新

  • 星痕s 2018-07-23 03:24
    关注

    运行结果是 “数据源错误”,这样应该可以帮回答者节省时间吧23333

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)