使用Java连接数据库(用户表)

时间:2015-02-09 14:52:00

标签: java database login

我使用java.swing获取此登录表单,现在我想将我的登录名连接到一个表,即用户详细信息(用户名和密码)都应存储在本地数据库中以进行登录。我尝试创建一个具有访问权限然后连接它的表但我错过了“系统DNS”驱动程序。

我没有任何实际的数据库连接代码,因为我觉得最好最简单的方法来做这个,因为我真的很困惑,当我尝试时不起作用。

最后,我的问题是:是否可以在eclipse中创建数据库(如在visual studio中)?什么是正确和简单的方法?创建一个不同的类而不是在登录页面代码中填写它会更好吗?如果是,您如何实际连接两个页面?

public class Loginpage 
{

private JFrame frmGooglePlusExtractor;
private JTextField usernametxt;
private JPasswordField passwordField;

/**
 * Launches the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Loginpage window = new Loginpage();
                window.frmGooglePlusExtractor.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the application.
 */
public Loginpage() {
    initialize();
}

/**
 * Initialise the contents of the frame.
 */
private void initialize() {
    frmGooglePlusExtractor = new JFrame();
    frmGooglePlusExtractor.setResizable(false);
    frmGooglePlusExtractor.setTitle("Google Plus Extractor");
    frmGooglePlusExtractor.setBounds(100, 100, 326, 200);
    frmGooglePlusExtractor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frmGooglePlusExtractor.getContentPane().setLayout(new GridLayout(1, 0, 0, 0));

    JPanel panel = new JPanel();
    panel.setBackground(Color.LIGHT_GRAY);
    frmGooglePlusExtractor.getContentPane().add(panel);

    usernametxt = new JTextField();
    usernametxt.setColumns(10);

    JLabel lblUsername = new JLabel("Username");
    lblUsername.setForeground(Color.BLACK);

    JLabel lblPassword = new JLabel("Password");
    lblPassword.setForeground(Color.BLACK);
    lblPassword.setBackground(Color.WHITE);

    JButton btnLogIn = new JButton("Log In");
    btnLogIn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) 
        {
            loginmsg dlg = new loginmsg();

            dlg.setVisible(true);
            frmGooglePlusExtractor.setVisible(false);   

        }
    });
    btnLogIn.setForeground(Color.BLACK);

    final JButton btnCancel = new JButton("Quit");
    btnCancel.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e) 
        {

            if (e.getActionCommand().equals(btnCancel));
            {

            JOptionPane.showMessageDialog(null,"Are you sure you want to leave?");

            frmGooglePlusExtractor.dispose();

            }


        }
    });
    btnCancel.setForeground(Color.BLACK);

    passwordField = new JPasswordField();

    btnNewButton.setForeground(Color.BLACK);

        }
}

但是,我之前尝试过以下操作,但无法使其正常工作。

public static void main(String[] args) {

    Connection cnctn;

    try{

        // load jdbc driver
        String driver = "com.jnetdirect.jsql.JSQLDriver";

        Class.forName(driver);

        //create connection

        String server = "localhost";
        String port = "55555";
        String database  = server + port;
        String url = "jdbc:JSQLConnect://" + database;
        String username = "username";
        String password  = "password";

        try {
            cnctn = DriverManager.getConnection(url, username, password);

            System.out.println("connected");
        } catch (SQLException e) {

            e.printStackTrace();

            System.out.println("could not connect");
        }

    }

    catch (ClassNotFoundException e)
    {

        System.out.println("could not find db");
    }

}

1 个答案:

答案 0 :(得分:0)

大多数url(或所有url)都使用冒号来以这种方式分配服务器和端口号:server:port。 数据库应该是一个实际的数据库名称(您的服务器上有)。因此,在大多数情况下,网址应如下所示:

String url="jdbc:JSQLConnect://"+server+":"+port+"/"+databaseName;

只是为了记录最后一个catch子句及其异常通知它无法找到驱动程序,而不是数据库。