SpringBoot+神通数据库+JPA

先上原文

https://blog.csdn.net/Helloworld_pang/article/details/114266130

一、SpringBoot + 神通数据库

基本上按照上面的参考,是可以连接上神通数据库的,主要注意几点:

1、依赖

     目前公共仓库应该没有神通数据库所需要的依赖,按照参考,引入oscarJDBC16到自己的仓库,然后就可以引用了。当然,如果只是先测试一下,也可以先不用maven直接导入。注意,oscarJDBC16.jar在神通数据安装目录下应该能找到。下面是导入本地仓库的方法

mvn install:install-file -DgroupId=com.stdb -DartifactId=stoscarJDBC16 -Dversion=1.0 -Dpackaging=jar -Dfile=G:evm-toolsevm-toolsst-jaroscarJDBC16.jar 

// -Dfile:jar包在硬盘上的位置
// -DgroupId, -DartifactId, -Dversion:三个参数,指定存放maven仓库中的位置(与引入依赖时的属性相对应,自定义);
// -Dpackaging :打包类型,例如JAR;
 <dependency>
      <groupId>com.stdb</groupId>
      <artifactId>stoscarJDBC16</artifactId>
      <version>1.0</version>
 </dependency>

2、配置文件

     看参考就行(类似集成mysql的配置)

spring.datasource.url=jdbc:oscar://127.0.0.1:2003/OSRDB?serverTimezone=UTC&useSSL=FALSE
spring.datasource.username=SYSDBA
spring.datasource.password=szoscar55
spring.datasource.driver-class-name=com.oscar.Driver

    至此,启动SpringBoot项目,应该是没问题的

二、SpringBoot + 神通数据库 + JPA

SpringBoot + mysql + JPA 还是挺好用的,在这里也可以实现 SpringBoot + 神通数据库 + JPA。喜欢MyBits的,若有问题,可以去咨询原文的博主。

以下代码都是手打,若有拼写错误,请见谅。

1、JPA的自动建表功能还是挺方便的,需要在SpringBoot配置文件中加入(在此之前,记得加入JPA依赖到maven中)

import lombok.Data
import javax.persistence.*

@Entity
@Table(name="T1",shema="YQQ")
@Data // 这个注解是lombok的
public class YqqT1 {

  @Id
  private String id;

  private String name;

}

2、现在启动会发现报dialect错误,需要增加hibernate依赖

类似这种报错:https://blog.csdn.net/boling_cavalry/article/details/79342319

 刚才已经添加了oscarJDBC16,同理需要添加OscarHibernate,方法同添加oscarJDBC16一样

添加到本地仓库后,在pom.xml中引用就行

然后在配置文件中增加

spring.jpa.database-platform=org.hibernate.dialect.OscarHibernate

3、现在启动项目,就不会报错了,并且在神通数据库中自动建表成功。当然,前提是要开启自动建表

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

4、接下来可以尝试一下JPA简单的增删查改

在写接口之前,再说一下实体类YqqT1

主键自增是经常用到的,如果要连接神通数据库使用主键自增,可以增加一些注解,需要使用 @GeneratedValue等注解

参考:https://blog.csdn.net/weixin_34097242/article/details/89649815

1)第一种方法

修改后的YqqT1如下:

import lombok.Data
import javax.persistence.*

@Entity
@Table(name="T1",shema="YQQ")
@Data // 这个注解是lombok的
public class YqqT1 {

  @Id
  @sequenceGenerator(sequenceName="sequence1", name="t1",allocationSize=1)
  @GeneratedValue(strategegy =GenerationType.SENQUENCE,generator = "t1")
  private Integer id; 

private String name;
}

这样的话,在新增数据时,只需要传入name参数,id会自动生成,不过呢,我看了看神通数据库中,id字段属性中,‘自动生成’ 这个字段并没有被打钩

注意一下 sequenceName,可以使用

select nextval('sequence1');    查询     

 drop sequence sequence1;    删除

create sequence sequence1 start with 1 increment by 1;    创建

2)第二种方法

我发现改成  @GeneratedValue(strategegy =GenerationType.IDENTITY,generator = "t1") 也可以,(可能存在问题)

 3)第三种方法

 修改后的YqqT1如下:

import lombok.Data
import javax.persistence.*

@Entity
@Table(name="T1",shema="YQQ")
@Data // 这个注解是lombok的
public class YqqT1 {

  @Id
  @GeneratedValue(strategegy =GenerationType.IDENTITY)
  private Integer id;

  private String name;

}

但是!使用上面这种,需要手动在数据库 id字段的 ‘自动生成’ 属性打钩

-----

未完

原文地址:https://www.cnblogs.com/myfrank/p/14593366.html