Getting Checked Exception while running a SQL Prog

2019-09-15 10:42发布

问题:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.PrintWriter;
import java.sql.*;
import java.net.*;

public class connection {
    JTextField textfeild;
    JButton button;
    String text;
    Socket sock;
    PrintWriter writer;
    JButton button1;

    public static void main(String[] args) {
        connection user1 = new connection();
        user1.go();
    }//main method close

    public void go() {
        JFrame frame12 = new JFrame();
        JPanel centerpanel12 = new JPanel();
        centerpanel12.setLayout(new BoxLayout(centerpanel12, BoxLayout.Y_AXIS));
        textfeild = new JTextField(20);
        centerpanel12.add(textfeild);
        //textfeild.addActionListener(new textfeildlitner());
        frame12.add(centerpanel12);
        button = new JButton("Click Me");
        centerpanel12.add(button);
        button.addActionListener(new buttonlitner());
        button1 = new JButton("DataDisplay");
        centerpanel12.add(button1);
        button1.addActionListener(new buttonlitner1());

        frame12.getContentPane().add(BorderLayout.CENTER, centerpanel12);
        frame12.pack();
        frame12.setVisible(true);
        frame12.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }//go method close

      /*class textfeildlitner implements ActionListener{
          public void actionPerformed(ActionEvent ev){

          }
      }//inner class textfeildlitner close*/

    class buttonlitner implements ActionListener {
        public void actionPerformed(ActionEvent ev) {
            button.setText("I AM Clicked");
            String name = textfeild.getText();
            System.out.println(name);
            textfeild.setText("");
            textfeild.requestFocus();
        }//method close
    }//inner class close


    class buttonlitner1 implements ActionListener {
        void connection() {

            try {
                String user = "SQlUI";
                String pass = "123456";
                String db = "jdbc:sqlserver://localhost:1234;" + ";databaseName=SQlUI";
                Class.forName("com.microsoft.sqlserver.jdbc");
                Connection con = DriverManager.getConnection(db, user, pass);
                Statement s1 = con.createStatement();
                ResultSet r1 = s1.executeQuery("select * from Table_1");
                String[] result = new String[20];
                if (r1 != null) {
                    while (r1.next()) {
                        for (int i = 0; i < result.length; i++) {
                            for (int j = 0; j < result.length; j++) {
                                result[j] = r1.getString(i);
                                System.out.println(result[j]);
                            }//for j
                        }//for i
                    }//if
                }//try
            } catch (Exception ex) {
                ex.printStackTrace();
            }//catch
        }//connection()   

        public void actionPerformed(ActionEvent ev) {
            button1.setText("Processing");
            new buttonlitner1().connection();
        }//method close
    }//inner class close
}// outer class close

While running this code i am getting following exception----

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc
    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)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at connection$buttonlitner1.connection(connection.java:66)
    at connection$buttonlitner1.actionPerformed(connection.java:89)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

Don't know why its happening. I have added the sqlserver.jar in eclipse external library. The connection name

String db="jdbc:sqlserver://localhost:1234;"+";databaseName=SQlUI"; 

is correct. i am attaching the screenshot of the sqlserver.jar which i have added to external library.

回答1:

The driver class is com.microsoft.sqlserver.jdbc.SQLServerDriver and not com.microsoft.sqlserver.jdbc. Try to use:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");