含数据库操作的 Java 小项目目录结构

Java项目的目录结构会根据项目规模和使用的框架有所不同。下面为你介绍一个包含数据库操作的Java小项目的典型目录结构。

标准Maven项目结构

project-root/
├── src/
│   ├── main/
│   │   ├── java/                     # 源代码
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── project/
│   │   │               ├── config/   # 配置类
│   │   │               ├── controller/# 控制器层(处理HTTP请求)
│   │   │               ├── dao/      # 数据访问对象层
│   │   │               ├── model/    # 实体类
│   │   │               ├── service/  # 业务逻辑层
│   │   │               ├── util/     # 工具类
│   │   │               └── Application.java # 应用入口
│   │   ├── resources/                # 资源文件
│   │   │   ├── db/                   # 数据库相关
│   │   │   │   ├── migrations/       # 数据库迁移脚本
│   │   │   │   └── scripts/          # SQL脚本
│   │   │   ├── application.properties # 应用配置
│   │   │   └── log4j.properties      # 日志配置
│   │   └── webapp/                   # Web应用资源(仅适用于Web项目)
│   │       ├── WEB-INF/
│   │       │   ├── web.xml           # Web应用配置
│   │       │   └── views/            # JSP视图(如果使用)
│   │       └── static/               # 静态资源
│   │           ├── css/
│   │           ├── js/
│   │           └── images/
│   └── test/                         # 测试代码
│       ├── java/
│       └── resources/
└── pom.xml                           # Maven配置文件

各模块的主要功能

  1. config/ 配置类

    • 包含数据库连接配置、Spring配置等
    • 示例类:DataSourceConfig.javaAppConfig.java
  2. controller/ 控制器层

    • 处理HTTP请求,返回视图或JSON数据
    • 示例类:UserController.javaProductController.java
  3. dao/ 数据访问层

    • 与数据库交互,执行CRUD操作
    • 示例类:UserDao.javaProductDao.java
    • 可使用JDBC、MyBatis、Hibernate等实现
  4. model/ 实体类

    • 映射数据库表结构
    • 示例类:User.javaProduct.java
  5. service/ 业务逻辑层

    • 实现业务逻辑,调用DAO层
    • 示例类:UserService.javaProductService.java
  6. util/ 工具类

    • 包含常用工具方法
    • 示例类:DateUtil.javaStringUtils.java
  7. db/ 数据库相关

    • migrations/:存放数据库迁移脚本(如Flyway或Liquibase)
    • scripts/:存放SQL脚本(建表语句、初始化数据等)

数据库操作示例代码

下面是一个简单的数据库操作示例(使用JDBC):

// model/User.java
public class User {
    private int id;
    private String username;
    private String email;
    
    // getters and setters
}

// dao/UserDao.java
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

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";
    
    public List<User> getAllUsers() {
        List<User> users = new ArrayList<>();
        String sql = "SELECT * FROM users";
        
        try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(sql)) {
            
            while (rs.next()) {
                User user = new User();
                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("username"));
                user.setEmail(rs.getString("email"));
                users.add(user);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return users;
    }
    
    // 其他CRUD方法...
}

// service/UserService.java
public class UserService {
    private UserDao userDao = new UserDao();
    
    public List<User> getAllUsers() {
        return userDao.getAllUsers();
    }
    
    // 其他业务方法...
}

数据库配置文件示例

# src/main/resources/application.properties
jdbc.url=jdbc:mysql://localhost:3306/mydb
jdbc.username=root
jdbc.password=password
jdbc.driverClassName=com.mysql.cj.jdbc.Driver

这个目录结构可以根据项目实际需求进行调整,例如添加更多的模块或使用不同的技术栈。如果使用Spring Boot,目录结构会更加简化,但基本的模块划分原则是相似的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值