我正在尝试使用Java Eclipse(JavaFX,MySQL)为桌面创建一个“在线”支付系统。这个想法是客户(或提供商)可以登录/注册到应用程序,然后他可以支付账单(客户端)或创建它们(提供商)。 我做了与数据库的所有连接,但它是本地的,据我所知,为了更好的程序功能,我应该使用Sockets / ServerSockets在数据库和用户之间建立连接(可能是客户端/提供者)。 我尝试搜索过,我仍然在寻找能够帮助我了解这种连接如何工作的代码。 因此,我要求使用ServerSocket / Socket在主程序和数据库之间建立连接的示例,其中Client类具有:
public class Client extends User{
private String ID_card, name, surname;
private double founds;
public Client(int id, String userName, String password, String email, String ID_card, double founds, String name, String surname) {
super(id, userName, password, email);
this.ID_card = ID_card;
this.founds = founds;
this.name = name;
this.surname = surname;
}
另外,如果可能的话,我真的很感激使用ServerSocket / Socket将客户端添加到数据库的示例。 (即使是一个完美的链接) 这是我对本地数据库的addClient方法(光盘使客户端和提供者之间产生差异)
public void addClient(Client client) {
try {
Connection conn = getConnection();
PreparedStatement ps = conn.prepareStatement(
"insert into users(username,password,email,ID_card,name,surname,disc) values(?,?,?,?,?,?,?)",
Statement.RETURN_GENERATED_KEYS);
ps.setString(1, client.getUserName());
ps.setString(2, client.getPassword());
ps.setString(3, client.getEmail());
ps.setString(4, client.getID_card());
ps.setString(5, client.getName());
ps.setString(6, client.getSurname());
ps.setString(7, "client");
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
if (rs.next()) {
client.setId(rs.getInt(1));
}
closeConnection(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}