大家好,这里是公众号 DBA学习之路,分享一些学习国产数据库路上的知识和经验。
为了给大家提供一些技术交流的平台,目前已成立的技术交流群:
需要进群(均已超过 200 人,需要邀请)可以添加号主微信:Lucifer-0622,备注对应的群名即可。

本文来自群里小伙伴 巫山暮雨 的投稿,介绍了 Spring JPA 如何集成 YashanDB 的流程,思路清晰,干货满满!
Spring JPA(Java Persistence API)是 Java EE 中关于持久化(即对象持久化到数据库)的标准规范,它为 Java 应用提供了一种与数据库交互的面向对象的方法。Spring Data JPA 是 Spring 对 JPA 的实现,它极大地简化了数据持久化的操作。
以下是 Spring JPA 的重要性和用途:
Spring JPA 的这些特点和用途使其成为现代 Java 应用开发中不可或缺的一部分,特别是在需要与数据库交互的应用程序中。
YashanDB 是一款企业级数据库管理系统,它具有以下特点和优势:
YashanDB 的这些特点和优势使其在金融、政府、运营商、央国企等关键行业中具有强大的竞争力和广泛的应用前景。
本教程旨在为软件开发者、数据库管理员和IT专业人士提供一个全面的指南,以理解和实现 Spring JPA 与 YashanDB 的集成。通过本教程,读者将能够:
本教程面向以下类型的读者:
本教程假设读者已经具备基本的 Java 编程知识和对数据库操作的一般理解。通过本教程的学习,读者将能够构建高效、可维护且可扩展的 Spring JPA 应用程序,这些应用程序可以在 YashanDB 上运行。
系统和软件要求:
开发工具推荐:
关于 YashanDB 的安装和配置,可以参考:YashanDB 一键安装脚本分享,连接 YashanDB 数据库可以使用 YDC,可以参考官方教程。
创建数据库和表:
-- 执行以下语句创建用户以及授权
CREATE USER erupt IDENTIFIED BY erupt;
COMMIT;
GRANT CONNECT TO erupt;
GRANT RESOURCE TO erupt;
GRANT DBA TO erupt;
COMMIT;
至此,数据库安装完成,用户创建完成。
使用 IDEA 创建 SpringJPA 项目,创建完成后项目接口如下:
添加 YashanDB 依赖(两种方式添加依赖):
1、mvn install 添加 YashanDB 驱动到本地仓库
mvn install:install-file -Dfile=D:\yashandb-jdbc-1.8.0.jar -DgroupId=com.yashandb -DartifactId=yashandb -Dversinotallow=1.8.0 -Dversion=1.8.0 -Dpackaging=jar
然后在 pom.xml 文件引用
<!--添加崖山数据库依赖-->
<dependency>
<groupId>com.yashandb</groupId>
<artifactId>yashandb</artifactId>
<version>1.8.0</version>
</dependency>
2、打开 IDEA 的 ProjectStructure,使用 Libraries 添加 YashanDB 的连接驱动,对于多模块,只需要添加到对应的模块即可:
我这里使用的 application.yml,由于 JPA 的枚举以及方言不支持 Yashan,我们这里直接使用 Oralce 的方言;连接驱动使用 YashanDB 的驱动类:
server:
port: 8000
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.yashandb.jdbc.Driver
url: jdbc:yasdb://172.18.100.153:1688/yasdb
username: erupt
password: erupt
jpa:
show-sql: true
generate-ddl: true
database-platform: com.yashandb.jpa.YasDialect
properties:
hibernate:
dialect: org.hibernate.dialect.OracleDialect
hbm2ddl:
auto: create
naming-strategy:
org.hibernate.cfg.ImprovedNamingStrategy
temp:
use_jdbc_metadata_defaults: false
创建一个简单的用户实体类 User:
package com.example.jpayashan.model;
import lombok.Data;
import org.hibernate.annotations.ColumnDefault;
import javax.persistence.*;
import java.io.Serializable;
@Data
@Entity
@Table(name = "t_user")
public class User {
@Id //hibernate要求必须要一个id(主键),不然会报错
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ID_GENERATOR")
@SequenceGenerator(name = "ID_GENERATOR", sequenceName = "user_sequence")
@ColumnDefault("user_sequence.nextval")
private int id;
@Column(name = "name")
private String name;
public User() {
}
public User(String name) {
this.name = name;
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
}
创建一个用户仓库接口 UserRepository:
package com.example.jpayashan.Repository;
import com.example.jpayashan.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
package com.example.jpayashan.controller;
import com.example.jpayashan.Repository.UserRepository;
import com.example.jpayashan.model.User;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping("/User")
public class UsersController {
@Resource
private UserRepository userRepository;
@PostMapping("/insert")
public String insert(@RequestBody User user) {
userRepository.save(user);
return "接口调用成功!";
}
@GetMapping("/select")
public List<User> findAll() {
return userRepository.findAll();
}
}
确保你的 Spring Boot 启动类上有 @SpringBootApplication 注解,这样 Spring Boot 才能自动扫描并加载配置。
package com.example.jpayashan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@SpringBootApplication
@EnableJpaRepositories(basePackages = "com.example.jpayashan.Repository")
@EntityScan
public class JpaYashanApplication {
public static void main(String[] args) {
SpringApplication.run(JpaYashanApplication.class, args);
}
}
启动项目,控制台输出编译成功,数据库已创建表:
使用接口调试工具测试插入方法以及查询方法
调用接口插入数据:
查看数据库是否写入成功:
查询数据结果:
至此集成教程完成,更多可能自行探索。
达梦数据库安装最详细教程
一招教你学会达梦数据库的免密登录
一文讲透达梦数据库的大小写敏感
效率翻倍!达梦数据库 disql 使用技巧全攻略
达梦数据库参数配置与一键优化指南
金仓数据库 KingbaseES V9 单机安装指南
KingbaseES KSQL 免密登录的几种方式
KingbaseES 控制文件冗余与恢复秘籍
南大通用 GBASE 8s V8.8 数据库最全安装指南
GBase 8s GDCA 认证课后练习题大全(题库)
GBase 8s 数据库巡检报告及一键巡检脚本
YashanDB 一键生成 AWR 报告
YashanDB 数据库安装部署
yashandb-personal-23.3.1.100: https://download.yashandb.com/download
[2]YashanDB Developer Center 23.3: https://download.yashandb.com/download
原文作者:DBA学习之路;如有侵权,请联系管理员删除。