使用java书写一个运用数据访问层、业务逻辑层、UI层三层架构设计完成用户管理模块,完成用户登录业务设计的代码
时间: 2024-02-02 16:02:59 浏览: 24
好的,下面是一个简单的示例代码:
首先是数据访问层(DAO):
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDAO {
private Connection conn;
public UserDAO() {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mydb";
String username = "root";
String password = "123456";
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean checkUser(String username, String password) {
boolean result = false;
try {
String sql = "SELECT * FROM users WHERE username=? AND password=?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, password);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
result = true;
}
rs.close();
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
}
```
接下来是业务逻辑层(Service):
```java
public class UserService {
private UserDAO userDao;
public UserService() {
userDao = new UserDAO();
}
public boolean checkUser(String username, String password) {
return userDao.checkUser(username, password);
}
}
```
最后是UI层(UI):
```java
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class UserUI extends JFrame {
private JTextField usernameField;
private JPasswordField passwordField;
private JButton loginButton;
public UserUI() {
super("User Login");
JPanel formPanel = new JPanel(new BorderLayout());
JPanel fieldPanel = new JPanel(new FlowLayout());
fieldPanel.add(new JLabel("Username:"));
usernameField = new JTextField(20);
fieldPanel.add(usernameField);
fieldPanel.add(new JLabel("Password:"));
passwordField = new JPasswordField(20);
fieldPanel.add(passwordField);
JPanel buttonPanel = new JPanel(new FlowLayout());
loginButton = new JButton("Login");
loginButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String username = usernameField.getText();
String password = new String(passwordField.getPassword());
UserService userService = new UserService();
if (userService.checkUser(username, password)) {
System.out.println("Login success!");
} else {
System.out.println("Login failed!");
}
}
});
buttonPanel.add(loginButton);
formPanel.add(fieldPanel, BorderLayout.CENTER);
formPanel.add(buttonPanel, BorderLayout.SOUTH);
add(formPanel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new UserUI();
}
}
```
这个示例代码实现了一个简单的用户登录功能,使用了三层架构设计,其中数据访问层使用了MySQL数据库,业务逻辑层通过调用数据访问层的方法实现了用户登录的业务逻辑,UI层使用了Java Swing库实现了一个简单的登录窗口。