首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在尝试连接MariaDB时无法找到或加载主类

在尝试连接MariaDB时无法找到或加载主类
EN

Stack Overflow用户
提问于 2020-06-03 04:07:51
回答 2查看 903关注 0票数 0

错误:无法找到或加载主类.

当我试图连接java中的Maria时,我做错了什么?我是java的新手,所以别无礼.

我是不是以错误的方式编译了这个文件?我还试着下载mysql和mariaDb驱动程序,但是仍然没有成功.我认为驱动程序不是问题,感谢所有的指导和帮助。

这是我的全部代码:

代码语言:javascript
复制
Panaderia.java

package proyecto;

import javax.swing.JFrame;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.FlowLayout;
import java.sql.*;

public class Panaderia extends JFrame implements ActionListener{
    JTextArea tablas_ta;
    JTextArea registros_ta;
    JButton consultarTablas_btn;
    JButton consultarRegistros_btn;
    JTextField textField;

    /*
     * Método constructor
     **/
    public Panaderia(){

        super("Ejemplo de Java + MySQL");

        //Configurar la operación de salida por defecto para JFrame
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.setSize(800,750);

        setLayout(new FlowLayout());

        consultarTablas_btn = new JButton("Consultar tablas");
        consultarTablas_btn.setActionCommand("ConsultarTablas");
        add(consultarTablas_btn); 

        tablas_ta = new JTextArea(10, 70);
        add(tablas_ta);

        textField = new JTextField(30);
        add(textField);

        consultarRegistros_btn = new JButton("Consultar registros");
        consultarRegistros_btn.setActionCommand("ConsultarRegistros");
        add(consultarRegistros_btn); 

        registros_ta = new JTextArea(10, 70);
        add(registros_ta);


        // Usar este objeto como Manejador de eventos 
        consultarTablas_btn.addActionListener(this);
        consultarRegistros_btn.addActionListener(this);
        textField.addActionListener(this);


        this.setVisible(true);
    }


    public static void main(String[] args) {

        Panaderia mjf = new Panaderia();
    }

    @Override
    public void actionPerformed(ActionEvent evento) {
        String db, dbuser, pass;
            db = "ejemplos";//cambiar por el nombre de la base de datos que desean utilizar
            dbuser = "root";
            pass = "";
        if(evento.getActionCommand()=="ConsultarTablas") {  

            try {       
                Class.forName("com.mysql.jdbc.Driver");

                Connection con = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/"+db, dbuser, pass);

                Statement stmt = con.createStatement();  
                ResultSet rs = stmt.executeQuery("SHOW TABLES");  

                while( rs.next() ) {
                    tablas_ta.append( rs.getString(1) + "\n");
                }

                tablas_ta.append("\n");

                con.close();

            } catch(Exception e) { 
                System.out.println(e);
            }

        }

        if(evento.getActionCommand()=="ConsultarRegistros") {   

            try {       
                Class.forName("com.mysql.jdbc.Driver");

                Connection con = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/"+db, dbuser, pass);

                Statement stmt = con.createStatement(); 

                ResultSet rs = stmt.executeQuery("SELECT * FROM "+textField.getText());  

                String registro = "";

                while( rs.next() ) {
                    for(int i=1;i<=rs.getMetaData().getColumnCount();i++){
                        registro = registro + "\t" + rs.getString(i);
                    }
                    registros_ta.append( registro +"\n");
                    registro = "";
                }

                registros_ta.append("\n");

                con.close();

            } catch(Exception e) { 
                System.out.println(e);
            }

        }


    }   
}

终端显示的错误是:

你该怎么修呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-03 06:05:09

  1. 为了从命令行运行应用程序,您的Panaderia.java和mysql.jar文件应该驻留在同一个文件夹中。如果没有,你必须给出这条路。
  2. ,因此proyecto文件夹包含Panaderia.java和mysql.jar file.Open命令行,在根文件夹中可以看到proyecto文件夹

编译代码的proyecto\Panaderia.java

  • To

  • javac -cp proyecto\mysql-连接器-java-5.1.49.jar;运行:java -cp proyecto\mysql连接器-java-5.1.49.jar;proyecto.Panaderia

希望这能帮到你。

票数 1
EN

Stack Overflow用户

发布于 2020-06-03 05:52:55

你的代码似乎是正确的。我是在日食上跑的。唯一的问题是,您没有为数据库提供密码。我将建议您移到其中一个IDE - Eclipse或Netbeans。在命令行上编译是占用时间的,没有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62165077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档