制作MySQL方法

时间:2012-11-30 20:05:58

标签: java mysql

我对Java世界很陌生,我不太清楚如何做到这一点。

我有一个MySQL类,可以很好地提取表格,并将其打印到控制台。但是,我需要从另一个类做自定义SQL查询,我无法弄清楚如何做到这一点。有谁可以帮忙吗?

这是mysql类:

import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class mySQL {

    public static void main(String[] args) {

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

        String url = "jdbc:mysql://host:port/database";
        String user = "user";
        String password = "password";

        try {

            con = DriverManager.getConnection(url, user, password);
            pst = con.prepareStatement("SELECT * FROM NFT_users");
            rs = pst.executeQuery();
            con = DriverManager.getConnection(url, user, password);

            while (rs.next()) {
                System.out.print(rs.getInt(1));
                System.out.print(": ");
                System.out.println(rs.getString(2));
            }

        } catch (SQLException ex) {
                Logger lgr = Logger.getLogger(mySQL.class.getName());
                lgr.log(Level.SEVERE, ex.getMessage(), ex);

        } finally {

            try {
                if (rs != null) {
                    rs.close();
                }
                if (pst != null) {
                    pst.close();
                }
                if (con != null) {
                    con.close();
                }

            } catch (SQLException ex) {
                Logger lgr = Logger.getLogger(mySQL.class.getName());
                lgr.log(Level.WARNING, ex.getMessage(), ex);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您的问题不是SQL,而是软件设计。

考虑一个完整存在的类,它允许您访问数据。它将执行所有连接内容(private void loadConnection),然后使用ArrayList<User> getUsers()等方法。

然后,当您需要User的列表时,您只需执行myDatabaseObject.getUsers(),或者在其他情况下执行myDatabaseObject.getOtherObjects()。但是,您的其余代码都不会知道有关SQL或连接到数据库的任何信息。


如果您想做的不仅仅是非常简单的数据库访问,您应该考虑学习HibernateWikipedia link.如果您一直在阅读本网站上的问题并想知道Hibernate是什么,那么它就是完成此任务的工具。

至于如何自己完成此操作,只需将连接代码放在构造函数中,将连接保存到字段,并让上述方法执行查询(最好使用PreparedStatement)。