最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot+Spring?Data?JPA整合H2數(shù)據(jù)庫(kù)的示例代碼

 更新時(shí)間:2022年02月17日 10:02:49   作者:花傷情猶在  
H2數(shù)據(jù)庫(kù)是一個(gè)開源的關(guān)系型數(shù)據(jù)庫(kù),本文重點(diǎn)給大家介紹SpringBoot+Spring?Data?JPA整合H2數(shù)據(jù)庫(kù)的示例代碼,感興趣的朋友跟隨小編一起看看吧

前言

  • H2數(shù)據(jù)庫(kù)是一個(gè)開源的關(guān)系型數(shù)據(jù)庫(kù)。H2采用java語(yǔ)言編寫,不受平臺(tái)的限制,同時(shí)支持網(wǎng)絡(luò)版和嵌入式版本,有比較好的兼容性,支持相當(dāng)標(biāo)準(zhǔn)的sql標(biāo)準(zhǔn)
  • 提供JDBC、ODBC訪問接口,提供了非常友好的基于web的數(shù)據(jù)庫(kù)管理界面

官網(wǎng):http://www.h2database.com/

Maven依賴

<!--jpa-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--web-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--h2-->
<dependency>
	<groupId>com.h2database</groupId>
	<artifactId>h2</artifactId>
	<scope>runtime</scope>
</dependency>
<!--lombok-->
<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<optional>true</optional>
</dependency>

Conroller

@RestController
public class UserController {

    @Autowired
    UserRepository userRepository;
   @RequestMapping("/list")
    public List<User> findAll(){
       List<User> userList = userRepository.findAll();
       return userList;
   }
   @RequestMapping("/save")
   public String save(User user){
       userRepository.save(user);
       return "保存成功";
   @RequestMapping("/update")
   public String update(User user){
       return "更新成功";
   @RequestMapping("/delete")
   public String delete(Integer id){
       userRepository.deleteById(id);
       return "刪除成功";
}

實(shí)體類

@AllArgsConstructor
@NoArgsConstructor
@Entity
@Data
@Table(name = "user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String name;
    private Integer age;
    private Integer gender;
}

Repository

@Repository
public interface UserRepository extends JpaRepository<User,Integer> {

}

數(shù)據(jù)庫(kù)腳本文件

架構(gòu) (DDL) 腳本資源引用
schema.sql

drop table if exists user;
create table user(
    `id` int primary key auto_increment,
    `name` varchar(255) not null,
    `age` int not null,
    `gender` int not null
);

數(shù)據(jù) (DML) 腳本資源引用

insert into user (id,name,age,gender) values (null, '張三',18,1);
insert into user (id,name,age,gender) values (null, '李四',19,1);
insert into user (id,name,age,gender) values (null, '王五',20,1);
insert into user (id,name,age,gender) values (null, '李六',21,1);

配置文件

#---------服務(wù)器配置-----------
server.port=8080

#---------數(shù)據(jù)源配置-----------
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:file:./data;AUTO_SERVER=TRUE
spring.datasource.username=sa
spring.datasource.password=
#架構(gòu) (DDL) 腳本資源引用
spring.datasource.schema=classpath:db/schema.sql
#數(shù)據(jù) (DML) 腳本資源引用
spring.datasource.data=classpath:db/data.sql
#SQL腳本編碼
spring.datasource.sql-script-encoding=UTF-8
#初始化模式
spring.datasource.initialization-mode=ALWAYS
#如果在初始化數(shù)據(jù)庫(kù)時(shí)發(fā)生錯(cuò)誤,是否停止
spring.datasource.continue-on-error=true
#---------JPA配置-------------
#要操作的目標(biāo)數(shù)據(jù)庫(kù)
spring.jpa.database=h2
#控制臺(tái)顯示SQL語(yǔ)句
spring.jpa.show-sql=true
#更新或者創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)
spring.jpa.hibernate.ddl-auto=update
#物理命名策略的完全限定名稱
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
#是否在啟動(dòng)時(shí)初始化架構(gòu)
spring.jpa.generate-ddl=true
#----------H2配置--------------
#http://localhost:8080/h2-console
spring.h2.console.path=/h2-console
#啟用控制臺(tái)
spring.h2.console.enabled=true

啟動(dòng)項(xiàng)目

訪問H2數(shù)據(jù)庫(kù)

訪問:http://localhost:8080/h2-console

查看全部數(shù)據(jù)

由于設(shè)置了數(shù)據(jù)庫(kù)腳本,所以SpringBoot項(xiàng)目每次啟動(dòng)都會(huì)運(yùn)行一遍sql文件

#架構(gòu) (DDL) 腳本資源引用
spring.datasource.schema=classpath:db/schema.sql
#數(shù)據(jù) (DML) 腳本資源引用
spring.datasource.data=classpath:db/data.sql
#SQL腳本編碼
spring.datasource.sql-script-encoding=UTF-8
#初始化模式
spring.datasource.initialization-mode=ALWAYS
#如果在初始化數(shù)據(jù)庫(kù)時(shí)發(fā)生錯(cuò)誤,是否停止
spring.datasource.continue-on-error=true

H2數(shù)據(jù)庫(kù)文件

數(shù)據(jù)庫(kù)文件位置通過spring.datasource.url來(lái)指定

spring.datasource.url=jdbc:h2:file:./data;AUTO_SERVER=TRUE

運(yùn)行方式

1.在內(nèi)存中運(yùn)行
數(shù)據(jù)庫(kù)只在內(nèi)存中運(yùn)行,關(guān)閉連接后數(shù)據(jù)庫(kù)將被清空,適合測(cè)試環(huán)境
連接字符串:

jdbc:h2:mem:DBName;DB_CLOSE_DELAY=-1

2.嵌入式
數(shù)據(jù)庫(kù)持久化存儲(chǔ)為單個(gè)文件
連接字符串:

jdbc:h2:file:~/.h2/DBName;AUTO_SERVER=TRUE

3.服務(wù)模式
H2支持三種服務(wù)模式:

  • web server:此種運(yùn)行方式支持使用瀏覽器訪問H2 Console
  • TCP server:支持客戶端/服務(wù)器端的連接方式
  • PG server:支持PostgreSQL客戶端

啟動(dòng)tcp服務(wù)連接字符串示例:

jdbc:h2:tcp://localhost/~/test 使用用戶主目錄
jdbc:h2:tcp://localhost//data/test 使用絕對(duì)路徑

4.連接字符串參數(shù)

  • DB_CLOSE_DELAY:要求最后一個(gè)正在連接的連接斷開后,不要關(guān)閉數(shù)據(jù)庫(kù)
  • MODE=MySQL:兼容模式,H2兼容多種數(shù)據(jù)庫(kù),該值可以為:DB2、Derby、HSQLDB、MSSQLServer、MySQL、Oracle、PostgreSQL
  • AUTO_RECONNECT=TRUE:連接丟失后自動(dòng)重新連接
  • AUTO_SERVER=TRUE:?jiǎn)?dòng)自動(dòng)混合模式,允許開啟多個(gè)連接,該參數(shù)不支持在內(nèi)存中運(yùn)行模式
  • TRACE_LEVEL_SYSTEM_OUT、TRACE_LEVEL_FILE:輸出跟蹤日志到控制臺(tái)或文件, 取值0為OFF,1為ERROR(默認(rèn)值),2為INFO,3為DEBUG
  • SET TRACE_MAX_FILE_SIZE mb:設(shè)置跟蹤日志文件的大小,默認(rèn)為16M

到此這篇關(guān)于SpringBoot+Spring Data JPA整合H2數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)SpringBoot整合H2數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JAVA 筆記 ClassLoader.getResourceAsStream() 與 Class.getResourceAsStream()的區(qū)別

    JAVA 筆記 ClassLoader.getResourceAsStream() 與 Class.getResourc

    這篇文章主要介紹了JAVA 筆記 ClassLoader.getResourceAsStream() 與 Class.getResourceAsStream()的區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • Java中ThreadLocal避免內(nèi)存泄漏的方法詳解

    Java中ThreadLocal避免內(nèi)存泄漏的方法詳解

    ThreadLocal是Java中的一個(gè)線程本地存儲(chǔ)機(jī)制,它允許每個(gè)線程擁有一個(gè)獨(dú)立的本地存儲(chǔ)空間,用于存儲(chǔ)該線程的變量,本文主要介紹了ThreadLocal如何避免內(nèi)存泄漏,需要的朋友可以參考下
    2023-05-05
  • 如何用匿名內(nèi)部類實(shí)現(xiàn) Java 同步回調(diào)

    如何用匿名內(nèi)部類實(shí)現(xiàn) Java 同步回調(diào)

    這篇文章主要介紹了如何用匿名內(nèi)部類實(shí)現(xiàn) Java 同步回調(diào),幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-10-10
  • 解析java中volatile關(guān)鍵字

    解析java中volatile關(guān)鍵字

    這篇文章主要為大家解析了java中volatile關(guān)鍵字,經(jīng)常有人把volatile關(guān)鍵字和synchronized或者lock混淆,本文就為大家好好區(qū)分,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Java?Servlet實(shí)現(xiàn)表白墻的代碼實(shí)例

    Java?Servlet實(shí)現(xiàn)表白墻的代碼實(shí)例

    最近用Servlet做了個(gè)小項(xiàng)目,分享給大家,下面這篇文章主要給大家介紹了關(guān)于Java?Servlet實(shí)現(xiàn)表白墻的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 詳解JAVA中的for-each循環(huán)與迭代

    詳解JAVA中的for-each循環(huán)與迭代

    本文詳解了JAVA中的for-each循環(huán)與迭代,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),也是java中的難點(diǎn)知識(shí),需要的朋友可以參考下 。
    2016-10-10
  • Spring Security 安全認(rèn)證的示例代碼

    Spring Security 安全認(rèn)證的示例代碼

    這篇文章主要介紹了Spring Security 安全認(rèn)證的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java Swing實(shí)現(xiàn)的定制TextField功能示例

    Java Swing實(shí)現(xiàn)的定制TextField功能示例

    這篇文章主要介紹了Java Swing實(shí)現(xiàn)的定制TextField功能,結(jié)合實(shí)例形式分析了java swing組件TextField相關(guān)屬性功能與設(shè)置操作技巧,需要的朋友可以參考下
    2018-01-01
  • Java抽象類的構(gòu)造模板模式用法示例

    Java抽象類的構(gòu)造模板模式用法示例

    這篇文章主要介紹了Java抽象類的構(gòu)造模板模式用法,結(jié)合實(shí)例形式分析了java使用抽象類構(gòu)造模板模式相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • JPA如何使用entityManager執(zhí)行SQL并指定返回類型

    JPA如何使用entityManager執(zhí)行SQL并指定返回類型

    這篇文章主要介紹了JPA使用entityManager執(zhí)行SQL并指定返回類型的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評(píng)論

吕梁市| 南郑县| 西平县| 如东县| 遂溪县| 池州市| 吴江市| 邵阳县| 垫江县| 华宁县| 中西区| 沈阳市| 凤阳县| 原阳县| 贵定县| 彩票| 柘荣县| 洪雅县| 彭山县| 乌兰察布市| 伊金霍洛旗| 子长县| 格尔木市| 大理市| 华蓥市| 尚义县| 大姚县| 习水县| 渝北区| 延寿县| 南宫市| 涞水县| 丁青县| 南昌市| 金川县| 沽源县| 苍山县| 黎川县| 万全县| 霍州市| 新昌县|