[JAVA] Frühlingsstiefel + Heroku Postgres

Ich hatte mit den Details zu kämpfen, deshalb werde ich sie als Memo für mich selbst aufschreiben.

Es wird davon ausgegangen, dass Heroku Postgres zur Heroku-App hinzugefügt wurde. 2018-08-05_11h48_15.png

Spring Boot ist 2.0.4.

Installieren Sie den Befehl psql auf Ihrem lokalen Computer

In den Einstellungen von Heroku Potgres (obige Abbildung) wird "** Heroku CLI **" angezeigt und der folgende Befehl wird geschrieben.

heroku pg:psql Datenspeichername--App App Name

Ich habe einen Fehler erhalten, als ich es in meiner Umgebung ausprobiert habe. Sie müssen ** psql ** auf Ihrem lokalen Computer installieren. Es ist natürlich w

-->Verbindung zum Datenspeichernamen herstellen
 !    The local psql command could not be located. For help installing psql, see
 !    https://devcenter.heroku.com/articles/heroku-postgresql#local-setup

Lesen Sie URL oben und wechseln Sie zu Ihrer Windows 10-Umgebung Windows Setup. Ich habe es mit Artikeln installiert (heroku-postgresql # set-up-postgres-on-windows). Dann setze ich die Umgebungsvariable auf "C: \ Programme \ PostgreSQL \ \ bin".

heroku pg:psql Datenspeichername--App App Name
-->Verbindung zum Datenspeichernamen herstellen
psql (10.4)
SSL-Verbindung(Protokoll: TLSv1.2, Verschlüsselungsmethode: ECDHE-RSA-AES256-GCM-SHA384, Bitlänge:256, Komprimierung:aus)
"help"Holen Sie sich Hilfe bei.

App Name::DATABASE=>

Sie haben erfolgreich eine Verbindung hergestellt.

Befehl

Dies ist ein Teil, der nichts mit Spring Boot oder Heroku zu tun hat, aber ich habe eine Notiz gemacht, weil ich den Postgres-Befehl nicht allzu gut kannte.

Datenbanklistenanzeige

\l

Als ich das tat, kamen viele Datenbanken heraus, aber ich kann die DBs anderer Besitzer sehen ...? Ist es mandantenfähig?

Datenbankauswahl

\c Datenbankname
SSL-Verbindung(Protokoll: TLSv1.2, Verschlüsselungsmethode: ECDHE-RSA-AES256-GCM-SHA384, Bitlänge:256, Komprimierung:aus)
Datenbank"xxxx"An den Benutzer"xxxx"Verbunden als.

Tabellenlistenanzeige

Zeigen Sie nach dem Erstellen einer Tabelle mit create table die Tabelle an.

\d
Beziehungsliste
Schema|Name|Schimmel|Inhaber
----------+----------+----------+----------------
 public   | nogizaka |Tabelle| xxxxxxxxxxxxx

Detaillierte Anzeige der Tabelle

Siehe Details wie Spalten.

\d nogizaka

Das Schema ist Superauslassung.

Tabelle"public.nogizaka"
Säule|Schimmel|Kollation|Nullwert zulassen|Standard
------+-----------------------+----------+---------------+------------
 id   | integer               |          |               |
 name | character varying(64) |          |               |

Spring Boot

Spring Initializr

Erstellen Sie mit Spring Initializr eine Vorlage für Ihr Projekt. Ich habe die folgenden drei Abhängigkeiten gewählt. Sie müssen kein Web haben, aber ich habe es eingefügt, um den Laufzeitendpunkt zu einer REST-API zu machen.

2018-08-06_18h58_47.png

application.properties

Der Inhalt der Verbindung zur Datenbank wurde basierend auf den Datenbankanmeldeinformationen in den Einstellungen von Heroku Postgres wie folgt definiert und betrieben.

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://Hostname:Port-Nummer/Name der Datenbank?sslmode=require
spring.datasource.username=Nutzername
spring.datasource.password=Passwort

Als ich zum ersten Mal süchtig wurde, waren die folgenden zwei Punkte durchgesickert.

Code

Alles was Sie tun müssen, ist zu schreiben.

Entity

Nogizaka.java


package tech.kikutaro.herokupostgres;

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

@Entity
@Table(name="nogizaka")
public class Nogizaka {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long id;

    @Column(name="name")
    private String name;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Es kann besser sein, Lombok als Setter und Getter zu verwenden.

Repository

NogizakaRepository.java


package tech.kikutaro.herokupostgres;

import org.springframework.data.jpa.repository.JpaRepository;

public interface NogizakaRepository extends JpaRepository<Nogizaka, Long> {

}

Service

NogizakaService.java


package tech.kikutaro.herokupostgres;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class NogizakaService {
    @Autowired
    NogizakaRepository nogirepo;

    public long count() {
        return nogirepo.count();
    }

    public Nogizaka getMember(long id) {
        return nogirepo.getOne(id);
    }
}

Vorerst nur zählen und holen.

Main

HerokupostgresApplication.java


package tech.kikutaro.herokupostgres;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class HerokupostgresApplication {

	@Autowired
	private NogizakaService nogiService;

	public static void main(String[] args) {
		SpringApplication.run(HerokupostgresApplication.class, args);
	}

	@GetMapping("/count")
	public String count() {
		System.out.println(nogiService.count());
		return Long.toString(nogiService.count());
	}

	@GetMapping("/select/{id}")
	public String getName(@PathVariable("id") long id) {
		return nogiService.getMember(id).getName();
	}
}

Ausführungsergebnis

Es hat sicher funktioniert.

http://localhost:8080/nogizaka/1

2018-08-09_23h07_44.png

http://localhost:8080/select/1

2018-08-10_00h00_18.png

Recommended Posts

Frühlingsstiefel + Heroku Postgres
Fordern Sie Spring Boot heraus
Spring Boot Form
Spring Boot Denken Sie daran
gae + frühlingsstiefel
Schreiben von Frühlingsstiefel-Memos (1)
Erster Frühlingsstiefel (DI)
SPRING BOOT Lernprotokoll 02
Spring Boot2 Spickzettel
Spring Boot-Ausnahmebehandlung
Spring Boot Servlet-Zuordnung
Spring Boot Entwicklung-Entwicklungsumgebung-
Spring Boot-Lernverfahren
Spring Boot lernen [Anfang]
Schreiben von Spring Boot-Memos (2)
Spring Boot 2.2 Dokumentzusammenfassung
[Spring Boot] DataSourceProperties $ DataSourceBeanCreationException
Spring Boot 2.3 Verfügbarkeit von Anwendungen
Spring Boot Tutorials Themen
Mit Spring Boot herunterladen
Spring Boot (1 Serie) + spring-security-oauth2 + Redis Session + Heroku mit SerializationException
[Spring Boot] Umgebungskonstruktion (macOS)
Legen Sie den Kontextparameter in Spring Boot fest
Versuchen Sie Spring Boot von 0 bis 100.
Generieren Sie mit Spring Boot einen Barcode
Spring Boot unter Microsoft Azure
Implementieren Sie GraphQL mit Spring Boot
Aufgabenplan für das Spring Boot Tutorial
Spring 5 & Spring Boot 2 Praktisches Vorbereitungsverfahren
Beginnen Sie mit Spring Boot
Hallo Welt mit Spring Boot!
Spring Boot 2 Multiprojekt mit Gradle
[Spring Boot] Erstellung von Webanwendungen
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Spring Boot Hot Swapping-Einstellungen
[Java] Thymeleaf Basic (Spring Boot)
Einführung in Spring Boot ~ ~ DI ~
Datei-Upload mit Spring Boot
Spring Boot beginnt mit dem Kopieren
Einführung in Spring Boot ② ~ AOP ~
CICS-Java-Anwendung ausführen- (4) Spring Boot-App
Spring Boot beginnend mit Docker
Spring Boot + Springfox Springfox-Boot-Starter 3.0.0 Verwendung
Tipps zur Spring Boot DB
Hallo Welt mit Spring Boot
Setzen Sie Cookies mit Spring Boot
[Spring Boot] Einfaches Rezept für den Paging-Prozess
Verwenden Sie Spring JDBC mit Spring Boot
Aufbau der Docker x Spring Boot-Umgebung
Wichtige Änderungen in Spring Boot 1.5
Modul mit Spring Boot hinzufügen
Erste Schritte mit Spring Boot
NoHttpResponseException in Spring Boot + WireMock
[Spring Boot] Senden Sie eine E-Mail
Einstellungen für die Spring Boot-Leistung
Einführung in Spring Boot Teil 1
Spring Boot Externe Einstellungspriorität
Versuchen Sie es mit Spring Boot Security
[Java] [Spring] Spring Boot 1.4-> 1.2 Downgrade Hinweis