尝试创建一个使用外部对象进行PostgreSQL查询的方法

时间:2017-06-06 01:31:56

标签: java postgresql

我正在开发一个个人项目,我正在努力想出一个密码存储系统。  我目前卡住的地方是我试图在网站,用户名和密码中输入登录数据库的部分。

这是我到目前为止所做的:

import java.sql.*;
import java.util.Optional;
import java.util.Properties;

public class Database {
private Properties connectionProps = new Properties();
private Connection conn = null;
private final String JDBC_URL = "jdbc:postgresql:pswdmgr";

public Database(){
    connectionProps.put("user", "******");
    connectionProps.put("password", "*******");
}

public void addLogin(Login login){
    try (Connection conn = DriverManager.getConnection(JDBC_URL,connectionProps)){
        String userName = user.getUserName();
        PreparedStatement stmt = conn.prepareStatement("INSERT into public.user_passwords (user_id,site_name,username, password) values (?,?,?,?)");
        PreparedStatement id = conn.prepareStatement("SELECT id FROM public.users WHERE username = ?");
        id.setString(1,userName);
        ResultSet rs = id.executeQuery();
        if(rs.next()) {
            stmt.setInt(1, rs.getInt(1));
            stmt.setString(2, login.getWebsite());
            stmt.setString(3, login.getLoginUserName());
            stmt.setString(4, login.getLoginPswd());
            stmt.executeUpdate();
        }
    } catch(SQLException e){
        e.printStackTrace();
        System.exit(1);
    }

}

public int getUserId(User user) {
    int anInt = 0;
    try (Connection conn = DriverManager.getConnection(JDBC_URL, connectionProps)) {
        String userName = user.getUserName();
        PreparedStatement id = conn.prepareStatement("SELECT id FROM public.users WHERE username = ?");
        id.setString(1, userName);
        ResultSet rs = id.executeQuery();
        if (rs.next()) {
            anInt = rs.getInt(1);
        }
    } catch (SQLException e) {
        e.printStackTrace();
        System.exit(2);
    }
    return anInt;
}

public Connection getConnection() throws SQLException {

    return conn;
}
}

这是我的Login类,我试图将用户的登录信息添加到user_password数据库中。我有一个单独的User类,用于存储用户名和密码,并为用户初次登录我的应用程序创建一个唯一的ID。用户数据库和user_password数据库中的密钥都是id。

但是,我似乎无法想出一种方法将用户类表中的id拉入addLogin方法。

 

我不确定这是否可行,但我是Java的新手,所以我愿意接受任何建议。

 

如果有人需要我进一步解释我想要完成的事情,请告诉我。

0 个答案:

没有答案