使用java的sql连接的驱动程序问题

使用java的sql连接的驱动程序问题,java,sql,sql-server,Java,Sql,Sql Server,我为用户制作了一个简单的表单,用于输入客户数据,它在文本字段中获取数据,并将其插入我运行的Microsoft SQL Server Management Studio 18数据库中。数据库正在我的计算机上运行。我的代码中的驱动程序部分有问题,它不断抛出异常。非常感谢您对我所做错事的任何帮助。这是我每次运行程序并点击提交按钮时收到的以下消息:抛出异常:com.microsoft.sqlserver.jdbc.SQLServerDriver java.lang.ClassNotFoundExcept

我为用户制作了一个简单的表单,用于输入客户数据,它在文本字段中获取数据,并将其插入我运行的Microsoft SQL Server Management Studio 18数据库中。数据库正在我的计算机上运行。我的代码中的驱动程序部分有问题,它不断抛出异常。非常感谢您对我所做错事的任何帮助。这是我每次运行程序并点击提交按钮时收到的以下消息:抛出异常:com.microsoft.sqlserver.jdbc.SQLServerDriver java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver 问题的完整堆栈跟踪: 位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602) 位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) 位于java.base/java.lang.Class.forName0(本机方法) 位于java.base/java.lang.Class.forName(Class.java:333) 在DBFE2.actionPerformed(DBFE2.java:119) 在java.desktop/javax.swing.AbstractButton.fireActionPerformed上(AbstractButton.java:1967) 位于java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308) 在java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed上(DefaultButtonModel.java:405) 在java.desktop/javax.swing.DefaultButtonModel.setPressed中(DefaultButtonModel.java:262) 在java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) 位于java.desktop/java.awt.Component.ProcessMouseeEvent(Component.java:6636) 位于java.desktop/javax.swing.JComponent.ProcessMouseeEvent(JComponent.java:3342) 位于java.desktop/java.awt.Component.processEvent(Component.java:6401) 位于java.desktop/java.awt.Container.processEvent(Container.java:2263) 位于java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5012) 位于java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) 位于java.desktop/java.awt.Component.dispatchEvent(Component.java:4844) 位于java.desktop/java.awt.LightweightDispatcher.RetargetMouseeEvent(Container.java:4918) 位于java.desktop/java.awt.LightweightDispatcher.ProcessMouseeEvent(Container.java:4547) 位于java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) 位于java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) 位于java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2762) 位于java.desktop/java.awt.Component.dispatchEvent(Component.java:4844) 位于java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) 位于java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) 位于java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) 位于java.base/java.security.AccessController.doPrivileged(AccessController.java:391) 位于java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) 位于java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) 位于java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) 位于java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) 位于java.base/java.security.AccessController.doPrivileged(AccessController.java:391) 位于java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) 位于java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) 位于java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) 位于java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) 位于java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) 位于java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) 位于java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 位于java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)


你是说这是MSSQL。因此,您必须在构建路径中添加或将其添加为(如果是mvn项目)。

这是否回答了您的问题。另外,请提供有关您收到的错误消息的更多详细信息。不,这没有帮助我下载了正确的连接器并将其安装到计算机上,以及更新我的java SDK,但这没有解决问题。带有JDBC驱动程序的jar文件需要是我正在使用netbeans 11.2。它没有像我觉得教程可以做。因此,我更改了projects pom.xml文件,添加了它所说的代码,我仍然收到相同的问题。我将它添加到xml文件中,解决了这个问题。感谢您的帮助,并对花了这么长时间才理解表示歉意。
package Assignments;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;//import all
import java.sql.*;//need this to make database connection

public class DataBaseFormExample extends JPanel implements ActionListener
{
    private JLabel FirstNameLabel;
    private JTextField FirstNameTextField;
    private JLabel LastNameLabel;
    private JTextField LastNameTextField;
    private JLabel PhoneNumLabel;
    private JTextField PhoneNumTextField;
    private JLabel StreetAddressLabel;
    private JTextField StreetAddressTextField;
    private JLabel StateLabel;
    private JTextField StateTextField;
    private JLabel CityLabel;
    private JTextField CityTextField;
    private JLabel ZipLabel;
    private JTextField ZipTextField;
    private JLabel GenderLabel;
    private JTextField GenderTextField;
    private JLabel DOBLabel;
    private JTextField DOBTextField;
    private JLabel MaritalStatusLabel;
    private JTextField MartialStatusTextField;
    
    //constructor
    public DataBaseFormExample()
    {
        //intializing components for form below
        FirstNameLabel = new JLabel("Enter the first name of Customer below:");
        FirstNameTextField = new JTextField("FirstName");
        FirstNameTextField.setColumns(10);
        LastNameLabel  = new JLabel("Enter the first name of Customer below:");
        LastNameTextField = new JTextField("LastName");
        LastNameTextField.setColumns(10);
        PhoneNumLabel = new JLabel("Enter the Phone Number of Customer below(EX:123-456-7890):");
        PhoneNumTextField = new JTextField("123-456-7890");
        PhoneNumTextField.setColumns(10);
        StreetAddressLabel  = new JLabel("Enter the street address of Customer below:");
        StreetAddressTextField = new JTextField("123 easy street");
        StreetAddressTextField.setColumns(10);
        StateLabel = new JLabel("Enter the state of Customer below(EX:PA):");
        StateTextField = new JTextField("PA");
        StateTextField.setColumns(10);
        CityLabel = new JLabel("Enter the city of Customer below(EX:Pittsburgh):");
        CityTextField = new JTextField("Pittsburgh");
        CityTextField.setColumns(10); 
        ZipLabel = new JLabel("Enter the zip of Customer below(EX:12345):");
        ZipTextField = new JTextField("12345");
        ZipTextField.setColumns(10); 
        GenderLabel = new JLabel("Enter the gender of Customer below(EX:M or F):");
        GenderTextField = new JTextField("M");
        GenderTextField.setColumns(10); 
        DOBLabel = new JLabel("Enter the DOB of Customer below(EX:12/03/5678):");
        DOBTextField = new JTextField("12/34/2010");
        DOBTextField.setColumns(10); 
        MaritalStatusLabel = new JLabel("Enter the martial status of Customer below(EX: Single / Married):");
        MartialStatusTextField = new JTextField("Single");
        MartialStatusTextField.setColumns(10); 
        JButton submitBTN = new JButton("Submit info");
        submitBTN.addActionListener(this);
        //add components to form
        add(FirstNameLabel);
        add(FirstNameTextField);
        add(LastNameLabel);
        add(LastNameTextField);
        add(PhoneNumLabel);
        add(PhoneNumTextField);
        add(StreetAddressLabel);
        add(StreetAddressTextField);
        add(StateLabel);
        add(StateTextField);
        add(CityLabel);
        add(CityTextField);
        add(ZipLabel);
        add(ZipTextField);
        add(GenderLabel);
        add(GenderTextField);
        add(DOBLabel);
        add(DOBTextField);
        add(MaritalStatusLabel);
        add(MartialStatusTextField);
        add(submitBTN);
    }
    //driver method
    public static void CreateAndShowContent()
    {
         //frame of calculator
        JFrame window = new JFrame("Customer Information Input Form");
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//closes when we click the red x
        DataBaseFormExample  content = new DataBaseFormExample ();
        content.setOpaque(true);
        window.setContentPane(content);
        //size it to fit components
        window.setSize(500,330);
        //show it
        window.setVisible(true);
    }
    //insert when the button submit is pressed
    public void actionPerformed(ActionEvent e)
    {
        try
        {
            //try inserting data to database
            String JDBC_DRIVER = "org.gjt.mm.mysql.Driver";
            String DB_URL = "jdbc:mysql://localhost/Giant_Snail_Grocery";
            String UserName = "username";
            String UserPass = "password";
            Connection conn = null;
            Statement statement = null;
            Class.forName(JDBC_DRIVER);
            System.out.println("Class.forName(driver) accepted....");
            conn = DriverManager.getConnection(DB_URL,UserName,UserPass);
            System.out.println("Connection Made....");
            statement = conn.createStatement();
            System.out.println("Statement object created from conn....");
            //String sql = "INSERT INTO CUSTOMER " +"VALUES('Todd','Packer','724-345-9876','134 west end road','PA','Pittsburgh','12356','M','12/21/1995','married');";
            String sql2 = "INSERT INTO CUSTOMER " + "VALUES("+ FirstNameTextField.getText() + " , " + LastNameTextField.getText() + ", " + PhoneNumTextField.getText() + ", " + StreetAddressTextField.getText() + ", " + StateTextField.getText() + ", " + CityTextField.getText() + ", " + ZipTextField.getText() + "," + GenderTextField.getText() + ", " + DOBTextField.getText() + ", " + MartialStatusTextField.getText() + ");";
            statement.executeUpdate(sql2);
            System.out.println("Insert successful to database....");
            if(statement != null)
            {
                conn.close();
                System.out.println("Connection closed to database....");
            }
        }
        catch(Exception p)
        {
            //catch any exceptions
            System.out.println("Exception thrown: " + p.getMessage());
        } 
    }
    //Main
    public static void main(String[] args) 
    {
        javax.swing.SwingUtilities.invokeLater(new Runnable()
        {
           public void run()
            {
                CreateAndShowContent();
            }
        });
    } 
}