通常,我们使用 Eclipse 、IDEA 等进行 Java开发。他们具备了各种自动化的配置程序。导入 jar 只需鼠标点一点即可实现。并且会在 运行项目的时候会自动化的进行一些 JDK的 指令操作。这是集成开发环境给我们带来的便利。但是,我们需要了解在这个过程中,IDE 到底执行了哪些的指令操作。

1600848978(1).jpg

博主这里提供了一个实例,是一个可以连接MySQL远程数据库、查询数据的 Swing 客户端。和 连接数据库的 jar 包(它们都在一个路径下)

Main.java :

import java.awt.event.*;
import javax.swing.*;

public class Main {

    public static void main(String[] args) {
        JFrame jf = new JFrame("demo");
        JPanel jp = new JPanel();
        JEditorPane je = new JEditorPane();
        JButton jb = new JButton("查询");
        jf.setBounds(500, 500, 220, 130);
        jf.add(jp);
        jp.add(je);
        jp.add(jb);
        jb.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    String sText = je.getText();
                    int Text = Integer.parseInt(sText);
                    SQLCtrl sqlctrl = new SQLCtrl();
                    sqlctrl.ctrl(Text);
                } catch (Exception ee) {
                    System.out.println("输入不能为空");
                }
            }
        });
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    }
}

SQLCtrl.java :

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class SQLCtrl {
    private String driverName = "com.mysql.cj.jdbc.Driver";
    private String URL = "jdbc:mysql://139.9.91.58:3306/chenDB";
    private String User_Name = "chen";
    private String Password = "chenjiehai";
    Connection dbConn = null;

    public void ctrl(int ID) {
        try {
            System.out.println("正在连接");
            Class.forName(driverName);
            dbConn = DriverManager.getConnection(URL, User_Name, Password);
            Statement stmt = dbConn.createStatement();
            ResultSet rs = stmt.executeQuery("select id from ID");
            while (rs.next()) {
                String id = rs.getString(1);
                int Text = Integer.parseInt(id);
                if (Text == ID) {
                    System.out.println("ID存在");
                } else {
                    System.out.println("ID不存在");
                }
            }
        } catch (Exception e) {
            System.out.println("连接失败,发生异常");
        }
    }
}

在没有加载 jar 包的情况下编译和运行程序,会发生异常错误。

2211.png

所以我们需要在 java 源码编译的时候加载 jar 包。

只需要使用命令:

javac -encoding utf-8 -cp mysql.jar *.java

编译后 class 会引用 jar 包的相关依赖。可直接运行。查询数据是否存在。

221.jpg

-encoding utf-8 代表的是使用 utf-8 编码集编译
*.java 代表编译路径下的所有源文件。
-cp mysql.jar 则是需要加载的 jar 包文件