欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot配置內(nèi)存數(shù)據(jù)庫(kù)H2教程詳解

 更新時(shí)間:2017年07月07日 10:00:39   作者:zhanglf02  
這篇文章主要介紹了springboot配置內(nèi)存數(shù)據(jù)庫(kù)H2的詳細(xì)教程,需要的朋友可以參考下

業(yè)務(wù)背景:因soa系統(tǒng)要供外網(wǎng)訪問(wèn),處于安全考慮用springboot做了個(gè)前置模塊,用來(lái)轉(zhuǎn)發(fā)外網(wǎng)調(diào)用的請(qǐng)求和soa返回的應(yīng)答。其中外網(wǎng)的請(qǐng)求接口地址在DB2數(shù)據(jù)庫(kù)中對(duì)應(yīng)專門的一張表來(lái)維護(hù),要是springboot直接訪問(wèn)數(shù)據(jù)庫(kù),還要專門申請(qǐng)權(quán)限等,比較麻煩,而一張表用內(nèi)置的H2數(shù)據(jù)庫(kù)維護(hù)也比較簡(jiǎn)單,就可以作為替代的辦法。

環(huán)境:springboot+maven3.3+jdk1.7

1.springboot的Maven工程結(jié)構(gòu)

說(shuō)明一下,resource下的templates文件夾沒(méi)啥用。我忘記刪掉了。。。

2. 首先引入依賴jar包 pom.xml

<!--?xml version="1.0" encoding="UTF-8"?-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelversion>4.0.0</modelversion>
 <groupid>com.zlf</groupid>
 spring-boot</artifactid>
 <version>1.0-SNAPSHOT</version>
 <!-- 增加父pom ,spring-boot-starter-parent包含了大量配置好的依賴管理,他是個(gè)特殊的starter,它提供了有用的maven默認(rèn)設(shè)置 -->
 <parent>
  <groupid>org.springframework.boot</groupid>
  spring-boot-starter-parent</artifactid>
  <version>1.4.3.RELEASE</version>
 </parent>
 <!-- Spring默認(rèn)使用jdk1.6,如果你想使用jdk1.8,你需要在pom.xml的屬性里面添加java.version,如下: -->
 <properties>
  <project.build.sourceencoding>UTF-8</project.build.sourceencoding>
  <tomcat.version>7.0.72</tomcat.version>
  <java.version>1.8</java.version>
 </properties>
 <!-- Spring通過(guò)添加spring-boot-starter-*這樣的依賴就能支持具體的某個(gè)功能。 -->
 <!-- 我們這個(gè)示例最終是要實(shí)現(xiàn)web功能,所以添加的是這個(gè)依賴。 -->
 <dependencies>
  <dependency>
   <!-- 指定為Web應(yīng)用,并啟動(dòng)一個(gè)內(nèi)嵌的Servlet容器(默認(rèn)是Tomcat)用于處理HTTP請(qǐng)求 -->
   <groupid>org.springframework.boot</groupid>
   spring-boot-starter-web</artifactid>
  </dependency>
  <!-- 對(duì)Java 持久化API的支持,包括spring-data-jap,spring-orm,Hibernate-->
  <dependency>
   <groupid>org.springframework.boot</groupid>
   spring-boot-starter-data-jpa</artifactid>
  </dependency>
  <!-- lombok插件,方便model對(duì)象的處理 -->
  <dependency>
   <groupid>org.projectlombok</groupid>
   lombok</artifactid>
  </dependency>
  <!-- 內(nèi)嵌數(shù)據(jù)庫(kù) -->
  <dependency>
   <groupid>com.h2database</groupid>
   h2</artifactid>
  </dependency>
  <!-- mysql驅(qū)動(dòng) -->
<!--  <dependency> -->
<!--   <groupId>mysql</groupId> -->
<!--   mysql-connector-java</artifactId> -->
<!--  </dependency> -->
  <dependency>
   <groupid>junit</groupid>
   junit</artifactid>
   <scope>test</scope>
  </dependency>
<!--  <dependency> -->
<!--   <groupId>javax.servlet</groupId> -->
<!--   jstl</artifactId> -->
<!--  </dependency> -->
 </dependencies>
 <build>
  <!-- 打包后的jar包名稱 -->
  <finalname>example</finalname>
  <plugins>
   <plugin>
    <groupid>org.springframework.boot</groupid>
    <!-- 必須要的SpringBoot繼承的maven插件,缺少了無(wú)法打包jar。 -->
    spring-boot-maven-plugin</artifactid>
    <dependencies>
     <!-- 在我們開(kāi)發(fā)過(guò)程中,我們需要經(jīng)常修改,為了避免重復(fù)啟動(dòng)項(xiàng)目,我們可以啟用熱部署。 Spring-Loaded項(xiàng)目提供了強(qiáng)大的熱部署功能, 
      添加/刪除/修改 方法/字段/接口/枚舉 等代碼的時(shí)候都可以熱部署,速度很快,很方便。 想在Spring Boot中使用該功能非常簡(jiǎn)單 ,就是在spring-boot-maven-plugin插件下面添加依賴: -->
     <dependency>
      <groupid>org.springframework</groupid>
      springloaded</artifactid>
      <version>1.2.5.RELEASE</version>
     </dependency>
    </dependencies>
   </plugin>
  </plugins>
 </build>
</project>

3.在src/main/resource根目錄下進(jìn)行配置h2數(shù)據(jù)庫(kù)。

schema.sql中建表。可以見(jiàn)多個(gè)表。用分號(hào)隔開(kāi)

CREATE TABLE staff(
id char(20) not null primary key,
name char(20),
age INTEGER
);

data.sql 為新建的表進(jìn)行初始化數(shù)據(jù)的操作??梢苑湃攵鄠€(gè)表的插入語(yǔ)句。

insert into staff values(
 's01', 
 '張三',
 26
);
insert into staff values(
 's02', 
 '春天里asdglkj',
 23
);
insert into staff values(
 's03', 
 '劉三',
 26
);
insert into staff values(
 's04', 
 '萬(wàn)里高空',
 26
);
insert into staff values(
 's05', 
 '火影',
 26
);
insert into staff values(
 's06', 
 'xiaopang',
 26
);
insert into staff values(
 's07', 
 '海賊王',
 26
);
insert into staff values(
 's08', 
 '王者榮耀',
 26
)

application.properties db2數(shù)據(jù)庫(kù)設(shè)置和控制臺(tái)現(xiàn)實(shí)設(shè)置等。

#spring.datasource.url = jdbc:mysql://localhost:3306/zhanglfdatabase
#spring.datasource.username = root
#spring.datasource.password = 
#spring.datasource.driverClassName = com.mysql.jdbc.Driver
#數(shù)據(jù)庫(kù)支持多種連接模式和連接設(shè)置,不同的連接模式和連接設(shè)置是通過(guò)不同的URL來(lái)區(qū)分的,URL中的設(shè)置是不區(qū)分大小寫。內(nèi)存數(shù)據(jù)庫(kù)(私有)
#jdbc:h2:mem:
#內(nèi)存數(shù)據(jù)庫(kù)(被命名)
#jdbc:h2:mem:<databasename>
#jdbc:h2:mem:test_mem
spring.datasource.url =jdbc:h2:mem:soa_service_api
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = org.h2.Driver
#進(jìn)行該配置后,每次啟動(dòng)程序,程序都會(huì)運(yùn)行resources/schema.sql文件,對(duì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)進(jìn)行操作,相當(dāng)于新建一個(gè)表。
spring.datasource.schema=classpath:schema.sql
#進(jìn)行該配置后,每次啟動(dòng)程序,程序都會(huì)運(yùn)行resources/data.sql文件,對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)操作,相當(dāng)于往表中插入數(shù)據(jù)。
spring.datasource.data=classpath:data.sql
# 數(shù)據(jù)庫(kù)類型聲明
spring.jpa.database = H2
# 是否開(kāi)啟查詢語(yǔ)句在控制臺(tái)打印
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
#spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
#開(kāi)啟h2控制臺(tái)功能和訪問(wèn)地址。
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console</databasename>
這里有必要強(qiáng)調(diào)H2數(shù)據(jù)庫(kù)設(shè)置的屬性:
spring.datasource.url =jdbc:h2:mem:soa_service_api

因?yàn)閿?shù)據(jù)庫(kù)支持多種連接模式和連接設(shè)置,不同的連接模式和連接設(shè)置是通過(guò)不同的URL來(lái)區(qū)分的,URL中的設(shè)置是不區(qū)分大小寫。其中幾種常用的設(shè)置如下圖

前兩種對(duì)應(yīng)的效果是:

1. jdbc:h2:file:E:/data/H2 表示將初始化的數(shù)據(jù)和H2 Console控制臺(tái)執(zhí)行的數(shù)據(jù)保存到E盤下data/H2文件夾中,即使應(yīng)用重啟,數(shù)據(jù)不會(huì)丟失。

2. jdbc:h2:~/testdatabase這里就需要說(shuō)明一下”~”這個(gè)符號(hào)在window操作系統(tǒng)下代表什么意思了,在Window操作系統(tǒng)下,”~”這個(gè)符號(hào)代表的就是當(dāng)前登錄到操作系統(tǒng)的用戶對(duì)應(yīng)的用戶目錄,所以testdatabase數(shù)據(jù)庫(kù)對(duì)應(yīng)的文件存放在登錄到操作系統(tǒng)的用戶對(duì)應(yīng)的用戶目錄當(dāng)中,比如我當(dāng)前是使用Administrator用戶登錄操作系統(tǒng)的,所以在”C:\Documents and Settings\Administrator.h2”目錄中就可以找到test數(shù)據(jù)庫(kù)對(duì)應(yīng)的數(shù)據(jù)庫(kù)文件了

持久化本地的問(wèn)題:由于本地已經(jīng)存在表,而應(yīng)用每次啟動(dòng)都會(huì)創(chuàng)建表,導(dǎo)致下次啟動(dòng)時(shí)會(huì)啟動(dòng)報(bào)錯(cuò)。除非手動(dòng)注掉application.properties中新建表的配置,或則刪除本地對(duì)應(yīng)目錄的文件。

3.jdbc:h2:mem:soa_service_api、jdbc:h2:mem:~/.h2/url類似與這種配置的,表示將初始化和h2 console控制臺(tái)上操作的數(shù)據(jù)保存在內(nèi)存(mem-memory)

保存到內(nèi)存的問(wèn)題:由于每次重啟應(yīng)用內(nèi)存釋放掉后,對(duì)應(yīng)的數(shù)據(jù)也會(huì)消失,當(dāng)然初始化的表+初始化數(shù)據(jù)就都沒(méi)了。然后重啟會(huì)從data.sql中重新初始化數(shù)據(jù),啟動(dòng)正常。但是你通過(guò)h2
console操作的其他數(shù)據(jù)則全部丟失。解決辦法是把在h2 console新添加的接口地址配置到data.sql中。然后重新啟動(dòng)才行。

4.h2的配置說(shuō)完,下面開(kāi)始進(jìn)行h2的測(cè)試代碼java文件部分,看看有沒(méi)有配置成功。我們用到JPA這個(gè)持久化的接口工具。

a.映射的pojo實(shí)體類-staffBo,注意點(diǎn)和說(shuō)明都在代碼里了。

package com.zlf.bo;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Data;
@Data//可以省略get+set方法。
@Entity
@Table(name="staff")//注解的name屬性值要和schema.sql定義的表名一致。不然啟動(dòng)雖然不報(bào)錯(cuò),但和表映射不上,就取不到任何值。
public class StaffBo implements Serializable {
 private static final long serialVersionUID = 1L;
 //主鍵是必須聲明的。不然啟動(dòng)會(huì)報(bào)實(shí)體中無(wú)定義主鍵的錯(cuò): No identifier specified for entity: com.zlf.bo.StaffBo
 @Id
 private String id;
// @Column(name="name") 如果表中字段名稱和這里的屬性名稱一樣,可以不同加Column注解。
 private String name;
 @Column(name="age")
 private int age;
}

b.然后是類似與dao層接口的操作數(shù)據(jù)庫(kù)的接口,StaffRepository這個(gè)接口要繼承PagingAndSortingRepository才能實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的crud操作。

package com.zlf.repository;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.zlf.bo.StaffBo;
public interface StaffRepository extends PagingAndSortingRepository<staffbo,string> {
}
</staffbo,string>

c. 然后就是service層的接口和實(shí)現(xiàn)類,在實(shí)現(xiàn)類中注入api接口的實(shí)例,并用實(shí)例操作數(shù)據(jù)庫(kù),這里是h2數(shù)據(jù)庫(kù)。

package com.zlf.service;
import java.util.List;
import com.zlf.bo.StaffBo;
public interface IStaffService {
 public List<staffbo> queryAllStaffList();
}
</staffbo>

這里我們只做了個(gè)查詢所有的操作。然后希望在頁(yè)面打印出來(lái)這些實(shí)體信息。

package com.zlf.service.impl;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zlf.bo.StaffBo;
import com.zlf.repository.StaffRepository;
import com.zlf.service.IStaffService;
@Service
public class StaffServiceImpl implements IStaffService {
 @Autowired
 private StaffRepository staffRepository;
 @Override
 public List<staffbo> queryAllStaffList() {
  Iterable<staffbo> iterable = staffRepository.findAll();
  List<staffbo> list=new ArrayList<staffbo>();
  Iterator<staffbo> iterator = iterable.iterator();
  while(iterator.hasNext()){
   StaffBo next = iterator.next();
   list.add(next);
  }
  return list;
 }
}
</staffbo></staffbo></staffbo></staffbo></staffbo>

d. controller層

package com.zlf.controller;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.zlf.bo.StaffBo;
import com.zlf.service.IStaffService;
@Controller
@RequestMapping(path="/staff",produces="application/json;charset=utf-8")
public class StaffController {
 private static final Logger logger=LoggerFactory.getLogger(StaffController.class);
 @Autowired
 private IStaffService staffService;
 @RequestMapping("/getList")
 @ResponseBody
 public List<staffbo> getAllList(){
  List<staffbo> staffList=null;
  try {
   staffList = staffService.queryAllStaffList();
  } catch (Exception e) {
   logger.error("查詢失敗");
  }
  return staffList;
 }
}
</staffbo></staffbo>

e. 重點(diǎn)來(lái)了–應(yīng)用的啟動(dòng)入口Application.java

這個(gè)java類最好放到和其他層級(jí)同級(jí)的根目錄中,這里就是com.zlf下,因?yàn)檫@個(gè)類的注解@SpringBootApplication會(huì)默認(rèn)掃描與它同級(jí)目錄的其他文件。這樣才能完成注入等操作。如果你把它放到了和其他層的代碼一樣的級(jí)別中,則要用這種注解才行。

比如mianApplication下的Application.java,就是我說(shuō)的另一種放到和其他層同級(jí)的結(jié)構(gòu)中的情形。

它應(yīng)該如何配置才能正常啟動(dòng)呢?

package mainApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * Spring Boot建議將我們main方法所在的這個(gè)主要的配置類配置在根包名下。
 * 
 * @author Administrator
 * 
 * 
 * @SpringBootApplication是Spring Boot提供的注解,他相當(dāng)于加上如下注解:
 * @Configuration,表明Application是一個(gè)Spring的配置對(duì)象,用于配置Spring應(yīng)用上下文。
 * @EnableAutoConfiguration,Spring Boot會(huì)根據(jù)類路徑(classpath)以及一些屬性值來(lái)自動(dòng)完成一些配置行為,例如:開(kāi)發(fā)基于Spring
 *  MVC的Web應(yīng)用,需要在配置中加上
 * @EnableWebMvc直接來(lái)激活一些默認(rèn)的Web配置, 一旦Spring Boot發(fā)現(xiàn)運(yùn)行時(shí)類路徑上包含了 spring-webmvc
 *        依賴,它會(huì)自動(dòng)的完成一個(gè)Web應(yīng)用的基本配置
 *        ——例如配置DispatcherServlet等等。
 * @ComponenScan告知Spring應(yīng)用從什么位置去發(fā)現(xiàn)Spring構(gòu)件(@Component, @Service,
 *              @Configuration)等等
 */
@SpringBootApplication
@Controller
// @RestController因?yàn)槲覀兝邮菍懸粋€(gè)web應(yīng)用,因此寫的這個(gè)注解,這個(gè)注解相當(dāng)于同時(shí)添加@Controller和@ResponseBody注解
// @EnableAutoConfiguration// Spring Boot會(huì)自動(dòng)根據(jù)你jar包的依賴來(lái)自動(dòng)配置項(xiàng)目的數(shù)據(jù)源依賴
@ComponentScan(basePackages = { "controller", "service", "dao" })
// @ComponentScan路徑被默認(rèn)設(shè)置為SampleController的同名package,也就是該package下的所有@Controller
// ,@Service , @Component, @Repository都會(huì)被實(shí)例化后并加入Spring Context中。這也是為什么要把這個(gè)類最好放到與其他包同級(jí)目錄 的原因了。
public class Application {
 @RequestMapping("")
 public String home() {
  // return "xiaozhang ,Hello World!";
  return "/index";
 }
 public static void main(String[] args) {
  // 啟動(dòng)Spring Boot項(xiàng)目最簡(jiǎn)單的方法就是執(zhí)行下面的方法
  SpringApplication.run(Application.class);
 }
}

這樣就完成了測(cè)試代碼的簡(jiǎn)單開(kāi)發(fā)。在application.java中右鍵run as java application ,啟動(dòng)程序。效果如下

. ____   _   __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
 ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v1.4.3.RELEASE)
2017-07-05 20:50:07.579 INFO 5956 --- [   main] com.zlf.Application      : Starting Application on pc-itwzhanglf02 with PID 5956 (E:\workspace\tsqa_springBoot2_hibernate_jpa\target\classes started by Administrator in E:\workspace\tsqa_springBoot2_hibernate_jpa)
2017-07-05 20:50:07.579 INFO 5956 --- [   main] com.zlf.Application      : No active profile set, falling back to default profiles: default
2017-07-05 20:50:07.657 INFO 5956 --- [   main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@50103bfb: startup date [Wed Jul 05 20:50:07 CST 2017]; root of context hierarchy
2017-07-05 20:50:09.655 INFO 5956 --- [   main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$c3c549d9] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-07-05 20:50:10.094 INFO 5956 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2017-07-05 20:50:10.110 INFO 5956 --- [   main] o.apache.catalina.core.StandardService : Starting service Tomcat
2017-07-05 20:50:10.110 INFO 5956 --- [   main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/7.0.72
2017-07-05 20:50:10.297 INFO 5956 --- [ost-startStop-1] org.apache.catalina.startup.TldConfig : At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
2017-07-05 20:50:10.297 INFO 5956 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]  : Initializing Spring embedded WebApplicationContext
2017-07-05 20:50:10.297 INFO 5956 --- [ost-startStop-1] o.s.web.context.ContextLoader   : Root WebApplicationContext: initialization completed in 2655 ms
2017-07-05 20:50:10.540 INFO 5956 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2017-07-05 20:50:10.540 INFO 5956 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'webServlet' to [/h2-console/*]
2017-07-05 20:50:10.540 INFO 5956 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-07-05 20:50:10.540 INFO 5956 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-07-05 20:50:10.540 INFO 5956 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-07-05 20:50:10.540 INFO 5956 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2017-07-05 20:50:10.961 INFO 5956 --- [   main] o.s.jdbc.datasource.init.ScriptUtils  : Executing SQL script from class path resource [schema.sql]
2017-07-05 20:50:10.976 INFO 5956 --- [   main] o.s.jdbc.datasource.init.ScriptUtils  : Executed SQL script from class path resource [schema.sql] in 15 ms.
2017-07-05 20:50:10.992 INFO 5956 --- [   main] o.s.jdbc.datasource.init.ScriptUtils  : Executing SQL script from class path resource [data.sql]
2017-07-05 20:50:10.992 INFO 5956 --- [   main] o.s.jdbc.datasource.init.ScriptUtils  : Executed SQL script from class path resource [data.sql] in 0 ms.
2017-07-05 20:50:11.118 INFO 5956 --- [   main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2017-07-05 20:50:11.133 INFO 5956 --- [   main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
 name: default
 ...]
2017-07-05 20:50:11.227 INFO 5956 --- [   main] org.hibernate.Version     : HHH000412: Hibernate Core {5.0.11.Final}
2017-07-05 20:50:11.227 INFO 5956 --- [   main] org.hibernate.cfg.Environment   : HHH000206: hibernate.properties not found
2017-07-05 20:50:11.227 INFO 5956 --- [   main] org.hibernate.cfg.Environment   : HHH000021: Bytecode provider name : javassist
2017-07-05 20:50:11.273 INFO 5956 --- [   main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
2017-07-05 20:50:11.398 INFO 5956 --- [   main] org.hibernate.dialect.Dialect   : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2017-07-05 20:50:11.793 INFO 5956 --- [   main] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000228: Running hbm2ddl schema update
2017-07-05 20:50:11.840 INFO 5956 --- [   main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2017-07-05 20:50:12.536 INFO 5956 --- [   main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@50103bfb: startup date [Wed Jul 05 20:50:07 CST 2017]; root of context hierarchy
2017-07-05 20:50:12.626 INFO 5956 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[]}" onto public java.lang.String com.zlf.Application.home()
2017-07-05 20:50:12.629 INFO 5956 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/staff/getList],produces=[application/json;charset=utf-8]}" onto public java.util.List<com.zlf.bo.staffbo> com.zlf.controller.StaffController.getAllList()
2017-07-05 20:50:12.631 INFO 5956 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.map<java.lang.string, java.lang.object="">> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-07-05 20:50:12.632 INFO 5956 --- [   main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-07-05 20:50:12.670 INFO 5956 --- [   main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-07-05 20:50:12.670 INFO 5956 --- [   main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-07-05 20:50:12.733 INFO 5956 --- [   main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-07-05 20:50:13.232 INFO 5956 --- [   main] o.s.j.e.a.AnnotationMBeanExporter  : Registering beans for JMX exposure on startup
2017-07-05 20:50:13.310 INFO 5956 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-07-05 20:50:13.310 INFO 5956 --- [   main] com.zlf.Application      : Started Application in 6.213 seconds (JVM running for 6.478)
</java.util.map<java.lang.string,></com.zlf.bo.staffbo>

打開(kāi)瀏覽器,訪問(wèn)地址:http://localhost:8080/staff/getList,可以看到初始化的數(shù)據(jù)都出來(lái)了。

然后訪問(wèn)地址:http://localhost:8080/h2-console出現(xiàn)下面的h2 console界面

在登陸頁(yè)面輸入在application.properties中配置的h2數(shù)據(jù)庫(kù)信息,登陸后可以看到左側(cè)已經(jīng)有我們初始化的表,查詢數(shù)據(jù),也能看到數(shù)據(jù)應(yīng)初始化進(jìn)來(lái)。則證明成功了!

以上所述是小編給大家介紹的springboot配置內(nèi)存數(shù)據(jù)庫(kù)H2教程詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Spring Boot獲取微信用戶信息的超簡(jiǎn)單方法

    Spring Boot獲取微信用戶信息的超簡(jiǎn)單方法

    這篇文章主要給大家介紹了關(guān)于Spring Boot獲取微信用戶信息的超簡(jiǎn)單方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • springboot實(shí)現(xiàn)攔截器之驗(yàn)證登錄示例

    springboot實(shí)現(xiàn)攔截器之驗(yàn)證登錄示例

    本篇文章主要介紹了springboot實(shí)現(xiàn)攔截器之驗(yàn)證登錄示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Action訪問(wèn)Servlet的API的簡(jiǎn)單實(shí)例

    Action訪問(wèn)Servlet的API的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇Action訪問(wèn)Servlet的API的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • Java內(nèi)存模型知識(shí)匯總

    Java內(nèi)存模型知識(shí)匯總

    本文中,有很多定義和說(shuō)法,都是筆者自己理解后定義出來(lái)的。希望能夠讓讀者可以對(duì)Java內(nèi)存模型有更加清晰的認(rèn)識(shí)。當(dāng)然,如有偏頗,歡迎指正。
    2018-09-09
  • Java時(shí)間類Date類和Calendar類的使用詳解

    Java時(shí)間類Date類和Calendar類的使用詳解

    這篇文章主要介紹了Java時(shí)間類Date類和Calendar類的使用詳解,需要的朋友可以參考下
    2017-08-08
  • Java圖片轉(zhuǎn)字符圖片的生成方法

    Java圖片轉(zhuǎn)字符圖片的生成方法

    本文主要實(shí)現(xiàn)了將一張圖片轉(zhuǎn)成字符圖片,同樣可以遍歷每個(gè)像素點(diǎn),然后將像素點(diǎn)由具體的字符來(lái)替換,從而實(shí)現(xiàn)字符化處理,感興趣的可以了解一下
    2021-11-11
  • java設(shè)計(jì)模式之外觀模式學(xué)習(xí)筆記

    java設(shè)計(jì)模式之外觀模式學(xué)習(xí)筆記

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之外觀模式學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • springboot整合jquery和bootstrap框架過(guò)程圖解

    springboot整合jquery和bootstrap框架過(guò)程圖解

    這篇文章主要介紹了springboot整合jquery和bootstrap框架過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 解決Maven項(xiàng)目本地公共common包緩存問(wèn)題

    解決Maven項(xiàng)目本地公共common包緩存問(wèn)題

    這篇文章主要介紹了解決Maven項(xiàng)目本地公共common包緩存問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java?CompletableFuture異步任務(wù)編排示例詳解

    java?CompletableFuture異步任務(wù)編排示例詳解

    這篇文章主要為大家介紹了java?CompletableFuture異步任務(wù)編排示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11

最新評(píng)論