SpringBoot学习记录1 官网教程 获取GitHub项目信息

教程

From Zero to Hero with Spring Boot - Brian Clozel
https://content.pivotal.io/springone-platform-2017/from-zero-to-hero-with-spring-boot-brian-clozel

源码

https://github.com/bclozel/issues-dashboard/


环境

java version “12” 2019-03-19
Java™ SE Runtime Environment (build 12+33)
Java HotSpot™ 64-Bit Server VM (build 12+33, mixed mode, sharing)

Eclipse IDE for Enterprise Java Developers.
Version: 2019-06 (4.12.0)
Build id: 20190614-1200


开工

1. 跑起来

在https://start.spring.io/下载demo
在这里插入图片描述
导入Eclipse
在这里插入图片描述
浏览器输入http://localhost:8080/
在这里插入图片描述
成功打开~

2.修改pom.xml

添加依赖

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<scope>runtime</scope>
		</dependency>
		
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
	</dependencies>

此处添加了三个依赖,依次为:

  1. JPA(Java Persistence API)

对于传统关系型数据库,Spring Boot使用JPA(Java Persistence API)资源库来实现对数据库的操作,简单来说,JPA就是为POJO(Plain Ordinary Java Object)提供持久化的标准规范,即将Java普通对象通过对象关系映射(Object Relational Mapping,ORM)持久化到数据库中。
————————————————
原文链接:https://blog.youkuaiyun.com/Lee_Ho_/article/details/81014215

  1. H2 Database Engine

Welcome to H2, the Java SQL database. The main features of H2 are:
Very fast, open source, JDBC API
Embedded and server modes; in-memory databases
Browser based Console application
Small footprint: around 2 MB jar file size
————————————————
官网链接:http://h2database.com/html/main.html

  1. Spring DevTools

Spring Boot includes an additional set of tools that can make the application development experience a little more pleasant.
————————————————
官网链接:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html

浏览器输入http://localhost:8080/h2-console
在这里插入图片描述
可将h2-console作为一个Servlet启动,查看数据库

然而此处点Connect并没有跳转,提示
在这里插入图片描述
查找发现

https://stackoverflow.com/questions/55349373/database-not-found-and-ifexists-true-so-we-cant-auto-create-it
If you are dealing with the Spring Boot project, please change the JDBC URL jdbc:h2:~/test to jdbc:h2:mem:testdb in the login page, which is the default URL configured by Spring Boot.

将JDBC URL中jdbc:h2:~/test替换为jdbc:h2:mem:testdb,解决问题

在这里插入图片描述

3. 建立GithubProject实体和仓库

新建events、GithubProject、GithubProjectRepository
在这里插入图片描述
教程中GithubProject.java直接导入了代码
对着敲了一遍

package com.example.demo.events;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class GithubProject implements Serializable{

	@Id
	@GeneratedValue
	private Long id;
	
	private String orgName;
	
	@Column(unique = true)
	private String repoName;
	
	public GithubProject(String orgName, String repoName) {
		this.orgName = orgName;
		this.repoName = repoName;
	}

	public Long getId() {
		return id;
	}

	public String getOrgName() {
		return orgName;
	}

	public void setOrgName(String orgName) {
		this.orgName = orgName;
	}

	public String getRepoName() {
		return repoName;
	}

	public void setRepoName(String repoName) {
		this.repoName = repoName;
	}

	@Override
	public String toString() {
		return "GithubProject [id=" + id + ", orgName=" + orgName + ", repoName=" + repoName + "]";
	}
	
}
package com.example.demo.events;

import org.springframework.data.repository.PagingAndSortingRepository;

public interface GithubProjectRepository extends PagingAndSortingRepository<GithubProject, Long>{
	
	GithubProject findByRepoName(String repoName);
}

重新编译
h2-console中查看GITHUB_PROJECT
在这里插入图片描述

4.flyway管理数据库版本

添加依赖

		<dependency>
			<groupId>org.flywaydb</groupId>
			<artifactId>flyway-core</artifactId>
		</dependency>

用于管理数据库版本
在这里插入图片描述
在resources中新建db/migration文件夹
新建文件V1.0.0__Init.sql

CREATE TABLE GITHUB_PROJECT (
	id	IDENTITY NOT NULL PRIMARY KEY,
	org_name	VARCHAR(50) NOT NULL,
	repo_name	VARCHAR(50) NOT NULL UNIQUE,
);

CREATE INDEX idx_repo_name ON GITHUB_PROJECT (repo_name);

重启
刷新
在这里插入图片描述
flyway_schema_history由flyway管理,可以看见应用中所有版本的数据库
也可管理本地数据库

新建V1.0.1__Insert.sql

INSERT INTO GITHUB_PROJECT(ORG_NAME,REPO_NAME) values ('spring-projects','spring-boot');
INSERT INTO GITHUB_PROJECT(ORG_NAME,REPO_NAME) values ('spring-io','initializr');
INSERT INTO GITHUB_PROJECT(ORG_NAME,REPO_NAME) values ('spring-io','sagan');

刷新

在这里插入图片描述
在这里插入图片描述

5.获取数据

照着视频抄的代码,也许有bug
在这里插入图片描述

浏览器访问http://localhost:8080//events/spring-boot
在这里插入图片描述
数据显示出来了,但是格式比较尴尬

吃饭去了,下次继续

此时,把视频往前翻,看到了源码地址???
在这里插入图片描述
所以我前面都在干什么???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值