在java表单MySQL中读取数据

在java表单MySQL中读取数据,java,mysql,Java,Mysql,我正在编写连接MySQL数据库的java代码。我有一个连接,但我无法在JFrame的标签中显示数据。因此,我连接到我的XAMPP数据库中的数据库软件,但我无法获取要显示在标签中的数据 ResultSet rs; ResultSetMetaData rsmd = null; int colCount = 0; String[] colNames = null; try { rs = engine.executeQuery("select * from music");

我正在编写连接MySQL数据库的java代码。我有一个连接,但我无法在JFrame的标签中显示数据。因此,我连接到我的XAMPP数据库中的数据库软件,但我无法获取要显示在标签中的数据

ResultSet rs;
ResultSetMetaData rsmd = null;
int colCount = 0;
String[] colNames = null;

    try {
        rs = engine.executeQuery("select * from music");
        rsmd = rs.getMetaData();
        colCount = rsmd.getColumnCount();
        colNames = new String[colCount];
        for (int i = 1; i <= colCount; i++) {
            colNames[i - 1] = rsmd.getColumnName(i);
        }

        String[] currentRow = new String[colCount];// array to hold the
                                                    // row data
        while (rs.next()) { // move the rs pointer on to the next record
                            // (starts before the 1st)
            for (int i = 1; i <= colCount; i++) {
                currentRow[i - 1] = rs.getString(i);
            }
        }

    //System.out.println(authenticated);

    }
    catch (SQLException a)
    {
        System.err.println("SQLException: " + a.getMessage());
    }
ResultSet-rs;
ResultSetMetaData rsmd=null;
int colCount=0;
字符串[]colNames=null;
试一试{
rs=引擎执行(“从音乐中选择*);
rsmd=rs.getMetaData();
colCount=rsmd.getColumnCount();
colNames=新字符串[colCount];

对于(inti=1;i使用此代码进行工作

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

import java.sql.ResultSetMetaData;

public class Db {
    public static void main(String arg[]) throws SQLException,
            ClassNotFoundException {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost/dbname", "root", "");

        java.sql.Statement stmt = conn.createStatement();
        String query = "select * from music";

        ResultSet rs = stmt.executeQuery(query);
        ResultSetMetaData rsmd = rs.getMetaData();

        int columncount = rsmd.getColumnCount();

        for(int i = 1 ; i < columncount ; i ++)
            System.out.print(rsmd.getColumnName(i));

        System.out.println();

        while (rs.next()) {

            for(int i = 1 ; i < columncount ; i ++)
            {
                System.out.print(rs.getString(i));
            }
            System.out.println();
        }

        conn.close();

    }

}
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.sql.ResultSetMetaData;
公共类数据库{
公共静态void main(字符串arg[])引发SQLException,
ClassNotFoundException{
Class.forName(“com.mysql.jdbc.Driver”);
连接连接=DriverManager.getConnection(
“jdbc:mysql://localhost/dbname“,”根“,”);
java.sql.Statement stmt=conn.createStatement();
字符串查询=“从音乐中选择*”;
ResultSet rs=stmt.executeQuery(查询);
ResultSetMetaData rsmd=rs.getMetaData();
int columncount=rsmd.getColumnCount();
对于(int i=1;i
既然您想为DB连接使用单独的类,并在其他地方使用此连接,您可以这样做

public class SQLConnect {
    public static Connection ConnectDb() {
        try { 
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = null;
            try {
                conn = DriverManager.getConnection("jdbc:mysql://localhost/databasename", "root", "");
            } catch (SQLException ex) {
                Logger.getLogger(SQLConnect.class.getName()).log(Level.SEVERE, null, ex);
            }
            return conn;
        }
        catch (ClassNotFoundException e) {
            System.out.println("not connected");
            e.printStackTrace();//print extra info if error is thrown
            return null; 
        }
    }
}
并按如下方式使用该类

Connection conn = null;
ResultSet rs = null;
PreparedStatement pst = null;

try {
    conn = SQLConnect.ConnectDb();
    String sql = "SELECT * FROM somedatabase WHERE somevalue = ? ";
    pst = conn.prepareStatement(sql);
    pst.setString(1, CriminalID);
    rs = pst.executeQuery();

    if(rs.next()) {
        /*
         * set values of labels to those from database
         */
         jLabel.setText(rs.getString("Column name"));
    }

这将从数据库中获取数据,其中一些值等于您指定的值

可以告诉您我可以使用什么,因为我有一个单独的SQLEngine类,所以它不在一个类中。package softwareDesign;import java.sql.DriverManager;import java.sql.Connection;import java.sql.ResultSet;import java。sql.SQLException;import java.sql.Statement;公共类MySQLEngine{Connection conn;String dbName=“software”;String driver=“com.mysql.jdbc.driver”;String url=“jdbc:mysql://localhost:3306/“字符串用户名=”根“字符串密码=”;公共MySQLEngine(字符串用户名,字符串密码){conn=null;this.username=username;this.password=password;}//first partpublic void connect(){try{Class.forName(driver.newInstance();conn=DriverManager.getConnection(url+dbName,username,password);System.out.println(“建立连接”);//conn.close();}catch(异常e){System.out.println(“尚未建立连接”);}}}public ResultSet executeQuery(String sqlStatement)抛出SQLException{ResultSet rs=null;try{Statement s=conn.createStatement();rs=s.executeQuery(sqlStatement);}catch(SQLException e){throw e;}返回rs;}//第二部分这是类MySQLEngine,它是与数据库的已建立的public void connect()连接的地方{try{class.forName(driver.newInstance();conn=DriverManager.getConnection(url+dbName,username,password);System.out.println(“建立连接”);executeQuery(“你的查询是什么样的”);conn.close();}catch(异常e){System.out.println(“尚未建立连接”);}