深圳大鹏住房和建设局网站,做服装广告素材网站有哪些,万网网站模板,建设公司建站系统陈老老老板#x1f9b8; #x1f468;#x1f4bb;本文专栏#xff1a;国产数据库-达梦数据库#xff08;主要讲一些达梦数据库相关的内容#xff09; #x1f468;#x1f4bb;本文简述#xff1a;本文讲一下SpringBoot整合JPA与达梦数据库#xff0c;就是简单 本文专栏国产数据库-达梦数据库主要讲一些达梦数据库相关的内容 本文简述本文讲一下SpringBoot整合JPA与达梦数据库就是简单一定能实现的案例。 上一篇文章这是本专栏第一篇之后会整理更多的达梦数据库的文章 有任何问题都可以私聊我我能帮得上的一定帮忙感谢大佬们支持。 如果喜欢可以投个票吗在文章最后感谢感谢 一、达梦数据库简介
说明有关国产数据库完整的博客太少了所以就想弄一个完整的专栏给大家提供一些帮助。在现在这种国际形势下网络安全是每个企业乃至整个国家重中之重的事国产化是一种趋势在整合之前先了解一下达梦数据库。达梦数据库官网本篇主要讲整合详细介绍会在别的文章中。 这里需要对JPA有一定的了解可以看我之前的几篇文章《SpringBoot篇》09.Spring Data JPA简介与SpringBoot整合超详细教学
1.达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统简称DM。 达梦数据库管理系统的最新版本是8.0版本简称DM8。 2.DM8采用全新的体系架构在保证大型通用的基础上针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作极大提升了达梦数据库产品的性能、可靠性、可扩展性能同时兼顾OLTP和OLAP请求从根本上提升了DM8产品的品质。
二、JPA整合达梦数据库
说明本篇使用的是SpringBoot框架JPA达梦数据库的整合。 项目运行环境
idea2020.2DM8jdk1.8
1、创建项目
其实创建项目可以省略的但是还是给大家展示出来吧。详细的步骤就不啰嗦了。 选择组件就选lombok就OK了。其实我项目中使用的是springboot2.3.12.RELEASE因为适配用非常的稳定。大家自己改用项目版本就可以了。
2、添加坐标
注Dm8JdbcDriver18DmDialect-for-hibernate5.3hibernate-core这几个版本都是相对应的按这个来是一定没问题的。
dependencies!--starter-data-jpa中自带的是hibernate5.4可以兼容dm85.4-5.4都是兼容的--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!--lombok--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency!--达梦数据库驱动--!-- https://mvnrepository.com/artifact/com.dameng/Dm8JdbcDriver18 --dependencygroupIdcom.dameng/groupIdartifactIdDm8JdbcDriver18/artifactIdversion8.1.1.49/version/dependencydependencygroupIdcom.dameng/groupIdartifactIdDmDialect-for-hibernate5.3/artifactIdversion8.1.1.49/version/dependency/dependencies3.编写配置文件
注这里提供的是properties版。这里需要注意你的用户名与密码如果是默认创建的数据库就是这个用户名与密码全部权限。这里要先创建好模式模式是达梦特有的名称类似于数据库名创建达梦数据库会在之后的文章中单独写出来。 properties版
spring.datasource.urljdbc:dm://127.0.0.1:5236
spring.datasource.usernameSYSDBA
spring.datasource.passwordSYSDBA
spring.datasource.driver-class-namedm.jdbc.driver.DmDriverspring.jpa.properties.hibernate.dialectorg.hibernate.dialect.DmDialect
spring.jpa.database-platformorg.hibernate.dialect.DmDialect
### 特别重要与spring.jpa.hibernate.ddl-autoupdate适配有可能还是不好使建议是auto改成none
spring.jpa.hibernate.naming.physical-strategyorg.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.properties.hibernate.show_sqltrue
spring.jpa.hibernate.ddl-autonone
spring.jpa.open-in-viewfalse
## 这里是告诉JPA要控制的是哪个模式这个是默认创建的模式
spring.jpa.properties.hibernate.default_schemaSYSDBA
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults false4.编写实体类
注用过JPA的应该了解可以直接通过实体类在启动项目的时候就会生成模式的表类似于mysql中数据库中的表。
package com.sql.dmsql.domain;import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;Entity
Data
Table(name AAA)
public class AAA {IdGeneratedValue(strategy GenerationType.IDENTITY)Column(name ID)private Long id;Column(name NAME)private String name;}4.Repository类
注这里使用的还是JPQL也可以使用原生DM_SQL,可以与mysql进行完全适配不用更改sql。这个会单独在之后博客写出。内容太多了。
package com.sql.dmsql.repository;import com.sql.dmsql.domain.AAA;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;Repository
public interface ARepository extends PagingAndSortingRepositoryAAA,Long {TransactionalModifyingQuery(update AAA a set a.name :name where a.id :id)void update(String name,Long id);
}
5.测试类
注这里可以把这几个方法分开一个一个尝试因为在实体类中设置的是id自动自增所以不用设置id只传入name就可以。删除的要最后执行否则会报找不到id的错误。
SpringBootTest
class DmsqlApplicationTests {Autowiredprivate ARepository aRepository;Testvoid contextLoads() {// 添加数据AAA aaa new AAA();aaa.setName(ccc);aRepository.save(aaa);IterableAAA saUpdate aRepository.findAll();System.out.println(saUpdate);System.out.println(------------------------------------------);// 自定义更新aRepository.update(aaaa,1L);IterableAAA upAfter aRepository.findAll();System.out.println(upAfter);System.out.println(------------------------------------------);// 删除aRepository.deleteById(1L);IterableAAA deAfter aRepository.findAll();System.out.println(deAfter);System.out.println(------------------------------------------);}}总结国产化是一个不可避免的趋势整合国产数据库是必须要掌握的一步。希望对您有帮助感谢阅读 结束语裸体一旦成为艺术便是最圣洁的。道德一旦沦为虚伪便是最下流的。 勇敢去做你认为正确的事不要被世俗的流言蜚语所困扰。