SpringBoot整合JPA+人大金仓(kingbase8)

这篇具有很好参考价值的文章主要介绍了SpringBoot整合JPA+人大金仓(kingbase8)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

陈老老老板🦸
👨‍💻本文专栏:国产数据库-人大金仓(kingbase8)(主要讲一些人大金仓数据库相关的内容)
👨‍💻本文简述:本文讲一下Jpa框架整合人大金仓数据库,超级详细。
👨‍💻上一篇文章:这是本专栏的第一篇文章,之后会不断进行补充。
👨‍💻有任何问题,都可以私聊我,我能帮得上的一定帮忙,感谢大佬们支持。
🦹我认为人人都可以学好编程,我愿意成为你的领路人!(需内推私聊)

springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java

一、人大金仓数据库简介

1.人大金仓是成立最早的拥有自主知识产权的国产数据库企业,以“提供卓越的数据库产品助力企业级应用高质量发展”为使命,致力于“成为世界卓越的数据库产品与服务提供商”。
2.KingbaseES是一款面向大规模并发交易处理的企业级关系型数据库。 该产品支持严格的ACID特性、结合多核架构的超凡性能、健全完善的安全标准,以及完备的高可用方案,并提供可覆盖迁移、开发及运维管理全使用周期的智能便捷工具。产品融合了人大金仓在数据库领域几十年的产品研发和企业级应用经验,可满足各行业用户多种场景的数据处理需求

特性:

  • 迁移开发 简单高效
  • 高度容错 稳定可靠
  • 性能强劲 表现出众
  • 系统自治 简单易用
  • 纵深防御 确保安全
  • 全面兼容 深度适配

二、JPA整合人大金仓

说明:本篇使用的是SpringBoot框架+JPA+人大金仓的整合。如果想要案例,可以直接去我的下载资源中进行下载。
项目运行环境:

  • idea2020.2
  • V8
  • jdk1.8
  • springboot 2.3.12.RELEASE

1、创建项目

说明:其实创建项目可以省略的,但是还是给大家展示出来吧。详细的步骤就不啰嗦了。
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java
选择组件就选lombok就OK了。其实我项目中使用的是springboot2.3.12.RELEASE,因为适配用,非常的稳定。大家自己改用项目版本就可以了。
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java

2、创建与模式对应用户

说明:模式就是类似于MySQL的数据库,模式下面在创建表就类似于MySQL的表。创建与模式同名的用户(先创建用户在创建模式),用户名:oa_manager,密码:123456
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java
设置权限,全选就可以,必须要有创建修改表的权限,否则用此用户连接数据库,通过JPA创建表的时候会因为没有权限报错。
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java

3.创建模式

说明: 创建oa_manager模式。这样用oa_manager用户登录就可以直接连上该模式不需要指定模式。

springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java

4.创建表

说明: 创建all_user表,创建id,Integer类型,不能为空,自增。name,varchar类型,可以为空,非自增。不用插入数据,之后用JPA添加即可。
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java

5.项目中添加坐标

说明:这里需要自己先引入与Kingbase8整合的驱动jar包,Hibernate-4下载地址:官网下载地址,
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java
kingbase8-8.6.0.jar下载地址:官网下载地址
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java

jar包放入的位置,要与我的一致否则有可能找不到jar。
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
<!--JPA-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
<!--kingbase8.jdbc-->
        <dependency>
            <groupId>com.kingbase8.jdbc</groupId>
            <artifactId>kingbase8</artifactId>
            <version>8.6.0</version>
            <scope>system</scope>
            <systemPath>${pom.basedir}/libs/kingbase8-8.6.0.jar</systemPath>
        </dependency>
<!--hibinate-4-->
        <dependency>
            <groupId>hibernate-4</groupId>
            <artifactId>hibernate-4</artifactId>
            <version>4</version>
            <scope>system</scope>
            <systemPath>${pom.basedir}/libs/hibernate-4.dialect.jar</systemPath>
        </dependency>
    </dependencies>

6.编写配置文件

说明:这里提供的是yml版,想连接并且谢sql不需要使用模式名.表名,就要先创建该模式的同名用户,并用该用户进行连接。
yml版

spring:
  datasource:
    driver-class-name: com.kingbase8.Driver
#    这里需要指定连接的数据库 test
    url: jdbc:kingbase8://localhost:54321/test
#    这里需要创建和你模式名相同的用户,这样才能指定到这个模式
    username: oa_manager
    password: 123456
  jpa:
    open-in-view: false
#    是否在控制台展示sql
    show-sql: true
#    如果实体类中添加新字段,或者没有表 创建新的表
    hibernate:
      ddl-auto: none
    properties:
#     hibernate方言:就是对应数据库,在根据对应的数据库进行自动实现sql
      hibernate.dialect: org.hibernate.dialect.Kingbase8Dialect
#       自动生成的sql中from对应的表
      hibernate.default_schema: oa_manager
#      控制台的sql 进行格式化
      hibernate.format_sql: true
#      控制台可以看到JDBC运行时间
      hibernate.generate_statistics: true
#      是否显示注释,用以指出什么操作产生的 SQL 语句
      hibernate.use_sql_comments: true

7.编写实体类

说明:用过JPA的应该了解,可以直接通过实体类,在启动项目的时候就会生成模式的表(类似于mysql中数据库中的表)。但是这里在配置类中关闭了此项功能,容易出现bug,而且并不好解决,与版本适配有关。结构大家看图去建就可以了。

@Entity
@Data
@Table(name = "all_user")
public class AllUser {

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "id")
        private Integer id;

        @Column(name = "name")
        private String name;

}

模板样图:
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java

8.编写Repository类

说明:这里原生Sql,与JPQL与自动生成sql都用了,这样更容易区分。

@Repository
public interface UserRepository extends PagingAndSortingRepository<AllUser,Integer> {
//    这里使用的原生sql 所以from后面的是数据库中的表名 where后是表中字段名
    @Query(value = "select * from all_user where name = :name",
    nativeQuery = true)
     List<AllUser> selectall(String name);

    @Modifying
    @Transactional
//    这里使用的是JPQL 这里使用的是类名  条件是类中的变量名
    @Query("update AllUser set name = :name where id = :id")
    void update(@Param("name")String name,@Param("id") Integer id);
}

模板样图:
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java

9.编写测试类

说明:增删改查都有,先save在update,看结果通过数据库或者select查都可以。

@SpringBootTest
class Kingbase8ApplicationTests {


    @Autowired
    private UserRepository userRepository;

    /**
     * 添加 jpa自动方法save
     */
    @Test
    public void save(){
        AllUser user = new AllUser();
        user.setName("abc");
        userRepository.save(user);

        Iterable<AllUser> users = userRepository.findAll();
        System.out.println(users);
    }

    /**
     * 修改操作 自定义的JPQL
     */
    @Test
    public void update(){
        userRepository.update("陈老老老板",1);

        Iterable<AllUser> users = userRepository.findAll();
        System.out.println(users);
    }

    /**
     * 使用kingbase原生sql 进行的select
     */
    @Test
    public void select(){
        List<AllUser> select = userRepository.selectall("abc");
        System.out.println(select);
    }

    /**
     * 删除 jpa自动方法delete
     */
    @Test
    public void delete(){
        AllUser user  = new AllUser();
        user.setId(1);
        userRepository.delete(user);

        Iterable<AllUser> users = userRepository.findAll();
        System.out.println(users);
    }
}

成功示例:
springboot连接kingbase正确的模式,国产数据库-人大金仓(kingbase8),spring boot,数据库,java

oooooook了,超级简单,超级详细,有问题私聊我。

总结:国产化是一个不可避免的趋势,整合国产数据库是必须要掌握的一步。希望对您有帮助,感谢阅读

结束语:裸体一旦成为艺术,便是最圣洁的。道德一旦沦为虚伪,便是最下流的。
勇敢去做你认为正确的事,不要被世俗的流言蜚语所困扰。
文章来源地址https://www.toymoban.com/news/detail-822384.html

到了这里,关于SpringBoot整合JPA+人大金仓(kingbase8)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人大金仓Kingbase8安装与基本使用

    目录 一、准备工作 一、安装文件 二、禁用防火墙 三、修改内核参数 四、上传文件 二、安装kingbase 三、kingbase的使用 一、kingbase启动与停止 二、数据管理 三、命令行常用命令 操作系统 : CentOS7 x86_64 数据库KingbaseES_V008R006C006B0013_Lin64_install.iso 镜像 安装包官网下载地址 人大

    2023年04月23日
    浏览(38)
  • 【Kingbase8数据库】springboot jpa集成Kingbase8各种报错

    Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect’ not set 去了stackoverflow: java - Spring Boot JPA - Access to DialectResolutionInfo cannot be null when ‘hibernate.dialect’ not set - Stack Overflow 不是PostgreSQL,那就换成mysql的嘛: spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Kingbase8Dialect Co

    2024年02月12日
    浏览(48)
  • Mysql迁移到kingbase(人大金仓)全过程方案(java)

    按项目国产化需求,需要将MySQL数据库迁移成kingbase数据库,后端服务是java 现先用本地创建kingbase-win版服务器进行流程、代码测试 目录 前言: 流程: 一.从官网下载文件 1.下载安装包  2.下载需要的授权文件  3.下载数据库连接驱动文件​编辑  二.安装  ​编辑 三.数据库迁

    2024年02月04日
    浏览(60)
  • Mysql迁移到kingbase全过程调整方案解决(人大金仓)(java)

    按项目国产化需求,需要将MySQL数据库迁移成kingbase数据库,后端服务是java 现先用本地创建kingbase-win版服务器进行流程、代码测试 目录 前言: 流程: 一.从官网下载文件 1.下载安装包  2.下载需要的授权文件  3.下载数据库连接驱动文件​编辑  二.安装  ​编辑 三.数据库迁

    2024年02月16日
    浏览(44)
  • 【Springboot系列】SpringBoot整合Jpa

    前言: Spring Boot是一种快速开发框架,它简化了Java应用程序的开发过程。而Jpa(Java Persistence API)是Java持久化规范的一种实现,它提供了一种方便的方式来访问和操作数据库。将Spring Boot与Jpa整合可以更加方便地进行数据库操作,提高开发效率。本文将介绍如何使用Spring Bo

    2024年02月05日
    浏览(43)
  • SpringBoot整合JPA

    SpringData :Spring 的一个子项目。用于简化数据库访问,支持NoSQL 和 关系数据存储。其主要目标是使数据 库的访问变得方便快捷。 JPA :JPA(Java Persistence API,Java持久化API),定义了对象关系映射(Object Relation Mapping,ORM)以及实 体对象持久化的标准接口。Hibernate实现了JPA的一个ORM框

    2024年04月11日
    浏览(40)
  • Springboot --- 整合spring-data-jpa和spring-data-elasticsearch

    SpringBoot: 整合Ldap. SpringBoot: 整合Spring Data JPA. SpringBoot: 整合Elasticsearch. SpringBoot: 整合spring-data-jpa和spring-data-elasticsearch. SpringBoot: 整合thymeleaf. SpringBoot: 注入第三方jar包. SpringBoot: 整合Redis. SpringBoot: 整合slf4j打印日志. SpringBoot: 整合定时任务,自动执行方法. SpringBoot: 配置多数据源

    2023年04月25日
    浏览(73)
  • 人大金仓逻辑备份与还原

    逻辑备份 sys_dump 备份 切换用户 su - kingbase 进入到逻辑备份工具目录 /data/KingbaseES/ES/V8/ClientTools/bin 参数-F表示文件输出格式,p为plain模式,这里输出为sql格式;-U用户,-p密码 -d数据库 逻辑还原 进入到逻辑备份工具目录 /data/KingbaseES/ES/V8/ClientTools/bin 参数-F表示文件输出格式,

    2024年01月16日
    浏览(45)
  • 【金仓数据库】kingbase ES性能提升之传输压缩

    数据库应用场景复杂且多样,本文介绍金仓数据库在网络条件较差(小于10MB/s)场景,提供传输压缩特性进行性能提升。 当应用需要并发查询大量结果集时,容易出现网络资源争用问题。造成服务端CPU空闲而网络繁忙的状况,因为大结果集需要占用非常多的网络带宽,从而导

    2023年04月11日
    浏览(51)
  • 人大金仓数据库KingbaseES安全概述

    一、数据库安全性概述 1、数据库安全性就是指保护数据库以防止不合法使用所造成的数据泄露、更改或者破坏。 2、数据库不安全因素: · 计算机系统安全性 · 非授权用户对数据库的恶意存取和破坏 · 数据库中重要或敏感的数据被泄露 · 安全环境的脆弱性 3、数据库安全标

    2024年02月03日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包