Java 三层架构开发流程详解
一、概述
三层架构(Three-Tier Architecture)是一种软件架构模式,通常由表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三部分组成。这个结构使得应用程序的开发更加模块化、易于维护和扩展。在本文中,我们将通过一个简单的示例,教会你如何实现 Java 中的三层架构。
二、开发流程
以下是实现 Java 三层架构的基本步骤:
步骤 | 说明 |
---|---|
1 | 创建数据访问层(DAL) |
2 | 创建业务逻辑层(BLL) |
3 | 创建表示层(UI) |
4 | 测试完整的应用程序 |
三、各步骤代码实现
1. 创建数据访问层(DAL)
数据访问层主要负责与数据库的交互。我们需要创建一个数据库连接和相应的数据访问方法。
代码示例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
// 数据访问层类
public class UserDAO {
// 数据库连接信息
private static final String URL = "jdbc:mysql://localhost:3306/mydb";
private static final String USER = "root";
private static final String PASSWORD = "password";
// 获取数据库连接
private Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
// 插入用户
public void addUser(String name, int age) {
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
try (Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, name); // 设置用户姓名
pstmt.setInt(2, age); // 设置用户年龄
pstmt.executeUpdate(); // 执行插入操作
} catch (SQLException e) {
e.printStackTrace();
}
}
// 查询用户
public void getUser(int id) {
String sql = "SELECT * FROM users WHERE id=?";
try (Connection conn = getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, id); // 设置查询用户ID
ResultSet rs = pstmt.executeQuery(); // 执行查询
if (rs.next()) {
System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name") + ", Age: " + rs.getInt("age"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2. 创建业务逻辑层(BLL)
业务逻辑层负责处理业务逻辑,这部分会调用数据访问层的方法。
代码示例
// 业务逻辑层类
public class UserService {
private UserDAO userDAO = new UserDAO();
// 添加用户
public void addUser(String name, int age) {
if (name != null && age > 0) { // 简单的业务逻辑验证
userDAO.addUser(name, age);
System.out.println("用户添加成功!");
} else {
System.out.println("用户信息不合法!");
}
}
// 查询用户
public void getUser(int id) {
userDAO.getUser(id);
}
}
3. 创建表示层(UI)
表示层负责与用户交互,可以是一个简单的命令行界面。
代码示例
import java.util.Scanner;
// 表示层类
public class UserInterface {
private UserService userService = new UserService();
public void start() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("1. 添加用户");
System.out.println("2. 查询用户");
System.out.println("3. 退出");
int option = scanner.nextInt();
scanner.nextLine(); // 清空缓冲区
switch (option) {
case 1:
System.out.print("请输入用户名: ");
String name = scanner.nextLine();
System.out.print("请输入用户年龄: ");
int age = scanner.nextInt();
userService.addUser(name, age);
break;
case 2:
System.out.print("请输入用户ID: ");
int id = scanner.nextInt();
userService.getUser(id);
break;
case 3:
System.out.println("退出程序");
scanner.close();
return;
default:
System.out.println("无效的选项,请重试!");
}
}
}
public static void main(String[] args) {
new UserInterface().start(); // 启动用户界面
}
}
4. 测试完整应用程序
我们可以在 UserInterface
类中进行用户测试,并确保所有功能正常。
四、状态图
下面是状态图,展示了三层架构中各层的状态转移:
stateDiagram
[*] --> 表示层
表示层 --> 业务逻辑层
业务逻辑层 --> 数据访问层
数据访问层 --> [*]
五、总结
通过上述步骤,我们实现了一个简单的 Java 三层架构应用程序,包括数据访问层、业务逻辑层和表示层。在实际开发中,三层架构的优势在于使代码组织更清晰,方便后期的维护和扩展。
在学习的过程中,可以尝试对实现的内容进行更深层次的理解,或者扩展功能以更好地掌握三层架构的精髓。希望这篇文章能对你有所帮助,不断实践,你会成为一名优秀的开发者。