达梦数据库(DM Database)是中国自主研发的高性能关系型数据库管理系统,广泛应用于金融、政府、能源等领域。将达梦数据库与Spring Boot整合可以充分利用Spring Boot的快速开发能力和达梦数据库的高性能特性。本文将详细讲解如何在Spring Boot项目中整合达梦数据库,并提供实际操作步骤和代码示例。
达梦数据库提供了官方的JDBC驱动程序。可以从达梦官网下载对应版本的dmjdbc.jar
文件,并将其添加到项目的依赖中。
通过Spring Initializr创建一个基础的Spring Boot项目,确保包含以下依赖:
将下载的dmjdbc.jar
文件添加到项目的lib
目录下,或者直接通过Maven本地仓库引入。
如果使用Maven构建项目,可以在pom.xml
中添加如下依赖(需手动安装驱动到本地仓库):
<dependency>
<groupId>com.dameng</groupId>
<artifactId>dmjdbc</artifactId>
<version>8.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/dmjdbc.jar</systemPath>
</dependency>
application.yml
在application.yml
中配置达梦数据库连接信息:
spring:
datasource:
url: jdbc:dm://localhost:5236/TESTDB
username: SYSDBA
password: manager
driver-class-name: dm.jdbc.driver.DmDriver
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.DM8Dialect
url
:达梦数据库的连接地址。username
和 password
:数据库用户名和密码。driver-class-name
:达梦数据库的JDBC驱动类。hibernate.dialect
:指定Hibernate使用的方言。假设我们需要操作一个用户表USER_INFO
,定义对应的实体类:
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class UserInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// Getters and Setters
}
使用Spring Data JPA简化数据访问逻辑:
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserInfoRepository extends JpaRepository<UserInfo, Long> {
}
定义一个简单的服务类来处理业务逻辑:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserInfoRepository userInfoRepository;
public List<UserInfo> getAllUsers() {
return userInfoRepository.findAll();
}
public UserInfo saveUser(UserInfo user) {
return userInfoRepository.save(user);
}
}
暴露RESTful接口供客户端调用:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping
public List<UserInfo> getAllUsers() {
return userService.getAllUsers();
}
@PostMapping
public UserInfo createUser(@RequestBody UserInfo user) {
return userService.saveUser(user);
}
}
为了方便测试,可以在resources
目录下创建SQL脚本文件schema.sql
,用于初始化表结构:
CREATE TABLE USER_INFO (
ID BIGINT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(255) NOT NULL,
EMAIL VARCHAR(255) NOT NULL
);
启动Spring Boot应用后,可以通过Postman或其他工具测试API接口:
例如,发送以下JSON数据到POST /users
接口:
{
"name": "John Doe",
"email": "john.doe@example.com"
}
application.yml
中的配置是否正确。hibernate.dialect
。org.hibernate.dialect.DM8Dialect
。dmjdbc.jar
未正确添加到项目中。lib
目录并正确引用。