照著教學 跑完 git 後
改
application.properties
#spring.datasource.url: ${JDBC_DATABASE_URL:}
spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/myapp
spring.datasource.username=myapp
spring.datasource.password=myapp
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.maximum-pool-size=3
spring.thymeleaf.mode=HTML
logging.level.org.springframework=INFO
spring.profiles.active=production
server.port=${PORT:5000}
Main.java
/* * Copyright 2002-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.example; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.sql.DataSource; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Map; @Controller @SpringBootApplication public class Main { @Value("${spring.datasource.url}") private String dbUrl; @Value("${spring.datasource.username}") private String dbUsername; @Value("${spring.datasource.password}") private String dbPassword; @Autowired private DataSource dataSource; public static void main(String[] args) throws Exception { SpringApplication.run(Main.class, args); } @RequestMapping("/") String index() { return "index"; } @RequestMapping("/db") String db(Map<String, Object> model) { try (Connection connection = dataSource.getConnection()) { Statement stmt = connection.createStatement(); stmt.executeUpdate("CREATE TABLE IF NOT EXISTS ticks (tick timestamp)"); stmt.executeUpdate("INSERT INTO ticks VALUES (now())"); ResultSet rs = stmt.executeQuery("SELECT tick FROM ticks"); ArrayList<String> output = new ArrayList<String>(); while (rs.next()) { output.add("Read from DB: " + rs.getTimestamp("tick")); } model.put("records", output); return "db"; } catch (Exception e) { model.put("message", e.getMessage()); return "error"; } } @Bean public DataSource dataSource() throws SQLException { if (dbUrl == null || dbUrl.isEmpty()) { return new HikariDataSource(); } else { HikariConfig config = new HikariConfig(); config.setJdbcUrl(dbUrl); config.setUsername(dbUsername); config.setPassword(dbPassword); return new HikariDataSource(config); } } }