先上原文
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-tools\evm-tools\st-jar\oscarJDBC16.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字段的 ‘自動生成’ 屬性打鈎
-----
未完