You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring 2.7(Maven+JDK 8)中实现Oracle数据库脚手架?

Spring 2.7 + Oracle 数据库脚手架实现指南

一、核心依赖确认

确保pom.xml已包含以下依赖:

<!-- Spring Data JPA -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Oracle JDBC驱动 -->
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <scope>runtime</scope>
</dependency>
<!-- Lombok(可选,简化实体类代码) -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

二、数据库连接配置

在application.properties中配置Oracle连接参数:

# Oracle数据库连接
spring.datasource.url=jdbc:oracle:thin:@//你的数据库地址:端口/服务名
spring.datasource.username=你的数据库用户名
spring.datasource.password=你的数据库密码
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

# JPA基础配置
spring.jpa.hibernate.ddl-auto=none
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect

三、自动生成实体类与数据访问代码

Spring没有.NET那样的一键脚手架工具,但可以通过两种方式实现类似效果:

方法1:Hibernate逆向工程生成实体类

  1. 在pom.xml的build/plugins节点下添加Hibernate工具插件:
<plugin>
    <groupId>org.hibernate.tool</groupId>
    <artifactId>hibernate-tools-maven</artifactId>
    <version>5.6.14.Final</version>
    <dependencies>
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>19.3.0.0</version>
        </dependency>
    </dependencies>
    <configuration>
        <jdbcDriver>oracle.jdbc.OracleDriver</jdbcDriver>
        <jdbcUrl>jdbc:oracle:thin:@//你的数据库地址:端口/服务名</jdbcUrl>
        <jdbcUser>你的数据库用户名</jdbcUser>
        <jdbcPassword>你的数据库密码</jdbcPassword>
        <!-- 实体类生成后的包路径 -->
        <packageName>com.yourproject.entity</packageName>
        <outputDirectory>src/main/java</outputDirectory>
        <!-- 生成带JPA注解的实体类 -->
        <ejb3>true</ejb3>
    </configuration>
</plugin>
  1. 执行Maven命令生成实体类:
mvn hibernate-tools:hbm2java

执行完成后,指定包路径下会生成对应Oracle表的实体类,包含@Entity、@Id等JPA注解。

方法2:自动实现数据访问层(Repository)

Spring Data JPA会自动实现Repository接口的CRUD方法,无需手动编写SQL:

  1. 基于生成的实体类(比如对应Oracle表USER_TABLE的User类):
package com.yourproject.entity;

import lombok.Data;
import javax.persistence.*;

@Data
@Entity
@Table(name = "USER_TABLE")
public class User {
    @Id
    @Column(name = "USER_ID")
    private Long userId;
    
    @Column(name = "USER_NAME")
    private String userName;
    
    @Column(name = "EMAIL")
    private String email;
}
  1. 编写Repository接口:
package com.yourproject.repository;

import com.yourproject.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;

// 继承JpaRepository即可获得基础CRUD方法
public interface UserRepository extends JpaRepository<User, Long> {
    // 自定义查询方法,Spring会自动生成对应的SQL
    List<User> findByUserName(String userName);
}
  1. 在业务层直接注入使用:
package com.yourproject.service;

import com.yourproject.entity.User;
import com.yourproject.repository.UserRepository;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class UserService {
    private final UserRepository userRepository;

    // 构造函数注入
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    public User getUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

    public List<User> getUsersByName(String name) {
        return userRepository.findByUserName(name);
    }
}

四、注意事项

  • 确保Oracle数据库服务正常,连接地址、用户名、密码无误
  • JDK 8与Spring 2.7完全兼容,不要引入高于JDK 8版本的依赖
  • 若需要自定义实体生成规则,可以编写Hibernate逆向工程策略类扩展
  • 使用Lombok需要在IDE中安装对应插件,否则注解无法正常识别

内容的提问来源于stack exchange,提问作者Othmen Khchimi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 05:36:13