第一次用java连接数据库,不知道哪错了?

错误提示:Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

import javax.swing.*;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

public class DAO {
private Connection conn =null;
private Statement st = null;

public void add(yg k) {
    String sql = "insert into stuinfo values(" + k.getYgname() + "','" + k.getYgno() + "','" + k.getYgnumber() + ")";
    try {
        st.executeUpdate(sql);
    } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, "输入的信息格式有误!添加失败!", "提示信息", 2);
    }

}

}

https://www.cnblogs.com/zijeak/p/10956410.html

java.lang.NullPointerException错误来自于尝试对null对象执行操作,发生在数据库连接时通常是没连接到,但是又以为有的时候对connect进行操作时报出,但是题主给的报错片段不够多,不知道是不是

这边是我自己用原装包装的代码,希望能帮上你的忙

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

/**
 * @auth huyi
 * @date 2020/06/24 14:10
 * @Description
 */
public class MysqlUtil {
    private static Connection conn;
    private final static String BASICURL = "jdbc:mysql://";
    private final static String driver = "com.mysql.cj.jdbc.Driver";
    private static PreparedStatement psql;
    static Statement statement;
    public static void getConn(String url,String user,String password){
        if(conn!=null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        try {
            Class.forName(driver);
            conn = DriverManager.getConnection(BASICURL+url,user,password);
        }catch(ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }
    synchronized public static Map<String, ArrayList<Object>> getSelect(String sql, Object... objects) throws SQLException{
        if(conn!=null) {
            psql = conn.prepareStatement(sql);
            for (int i = 0; i < objects.length; i++) {
                psql.setObject(i + 1, objects[i]);
            }
            ResultSet rs = psql.executeQuery();
            Map<String, ArrayList<Object>> map = new HashMap<>();
            if (rs.getMetaData() != null)
                try {
                    while (rs.next()) {
                        for (int j = 0; j < rs.getMetaData().getColumnCount(); j++) {
                            if (rs.isFirst()) {
                                ArrayList<Object> list = new ArrayList<>();
                                try {
                                    list.add(rs.getObject(j + 1));
                                } catch (SQLException e) {
                                    list.add(null);
                                }
                                map.put(rs.getMetaData().getColumnLabel(j + 1), list);
                            } else {
                                try {
                                    map.get(rs.getMetaData().getColumnLabel(j + 1)).add(rs.getObject(j + 1));
                                } catch (SQLException e) {
                                    map.get(rs.getMetaData().getColumnLabel(j + 1)).add(null);
                                }
                            }
                        }
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            rs.close();
            return map;
        }
        return null;
    }
    synchronized public static void update(String sql, Object... objects){
        if(conn!=null) {
            try {
                psql = conn.prepareStatement(sql);
                for (int i = 0; i < objects.length; i++) {
                    psql.setObject(i + 1, objects[i]);
                }
                psql.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    @Override
    protected void finalize() throws Throwable {
        if(conn!=null)
            conn.close();
        super.finalize();
    }
}