Petyus 1 年之前
父节点
当前提交
cde8f5c5c3

+ 33 - 0
.gitignore

@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/

+ 6 - 0
Dockerfile

@@ -0,0 +1,6 @@
+FROM amazoncorretto:8-alpine3.20-jre
+WORKDIR app
+ARG JAR_FILE=target/*.jar
+COPY ${JAR_FILE} sql-web-result.jar
+EXPOSE 8080
+ENTRYPOINT ["java","-jar","sql-web-result.jar"]

+ 20 - 0
docker-compose.yml

@@ -0,0 +1,20 @@
+services:
+  app:
+    container_name: app
+    build: .
+    ports:
+      - "8080:8080"
+    environment:
+      - "POSTGRES_DB_SERVER_ADDRESS=db"
+      - "POSTGRES_DB_SERVER_PORT=5432"
+      - "POSTGRES_USER=postgres"
+      - "POSTGRES_PASSWORD=example"
+    healthcheck:
+      test: "curl --fail --silent localhost:8080/actuator/health/readiness | grep UP || exit 1"
+      interval: 2s
+      timeout: 3s
+      retries: 5
+      start_period: 2s
+    depends_on:
+      db:
+        condition: service_healthy

+ 69 - 0
pom.xml

@@ -0,0 +1,69 @@
+<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.3.1</version>
+    </parent>
+
+    <groupId>com.petyuspolisz</groupId>
+    <artifactId>sqlwebresultjava</artifactId>
+    <version>3.3.1</version>
+
+    <name>sqlwebresultjava</name>
+    <description>
+        simple page showing an sql result
+    </description>
+
+    <properties>
+        <java.version>17</java.version>
+        <lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-core</artifactId>
+            <version>5.4.24.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok-mapstruct-binding</artifactId>
+            <version>${lombok-mapstruct-binding.version}</version>
+        </dependency>
+
+        <!-- Dialects:-->
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>sql-web-result</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 18 - 0
src/main/java/com/petyuspolisz/sqlwebresultjava/springboot/SpringBootSqlWebResultApplication.java

@@ -0,0 +1,18 @@
+package com.petyuspolisz.sqlwebresultjava.springboot;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+
+@SpringBootApplication
+@EnableJpaRepositories
+@EnableAspectJAutoProxy
+public class SpringBootSqlWebResultApplication {
+
+	public static void main(String[] args) {
+
+		SpringApplication.run(SpringBootSqlWebResultApplication.class, args);
+	}
+
+}

+ 21 - 0
src/main/java/com/petyuspolisz/sqlwebresultjava/springboot/controller/HelloController.java

@@ -0,0 +1,21 @@
+package com.petyuspolisz.sqlwebresultjava.springboot.controller;
+
+import com.petyuspolisz.sqlwebresultjava.springboot.service.AsdService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RestController
+public class HelloController {
+
+	@Autowired
+	private AsdService asdService;
+
+	@GetMapping("/hello")
+	public ResponseEntity<String> sayHello() {
+		return ResponseEntity.ok(asdService.runQuery());
+	}
+
+}

+ 25 - 0
src/main/java/com/petyuspolisz/sqlwebresultjava/springboot/service/AsdService.java

@@ -0,0 +1,25 @@
+package com.petyuspolisz.sqlwebresultjava.springboot.service;
+
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
+import lombok.RequiredArgsConstructor;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+
+@RequiredArgsConstructor
+@Service
+public class AsdService {
+
+    @PersistenceContext
+    private EntityManager em;
+
+    public String runQuery() {
+        String sql = "SELECT * FROM `wp_users`";
+        Query query = em.createNativeQuery(sql);
+        return (String) query.getSingleResult();
+    }
+}

+ 31 - 0
src/main/resources/application.yml

@@ -0,0 +1,31 @@
+server:
+  http2:
+    enabled: true
+
+spring:
+  datasource:
+    url: jdbc:postgresql://${SQL_ADDRESS:192.168.111.64}:${SQL_PORT:3306}/wordpress?sslmode=disable
+    #url: jdbc:sqlserver://;serverName=sql1;databaseName=master;encrypt=false;trustServerCertificate=false;
+    username: ${SQL_USER:wordpress}
+    #password: ${SQL_PASSWORD:yourStrong(!)Password}
+    password: ${SQL_PASSWORD:6w4ydk6c}
+  jpa:
+    hibernate:
+      ddl-auto: none
+    properties:
+      hibernate:
+        boot:
+          allow_jdbc_metadata_access: true
+    ## Microsoft SQL: org.hibernate.dialect.SQLServerDialect
+    ## jdbc:sqlserver://;serverName=localhost;databaseName=booksdb;encrypt=true;trustServerCertificate=true;
+    #database-platform: org.hibernate.dialect.SQLServerDialect
+    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    open-in-view: false
+    show-sql: true
+  jta:
+    enabled: false
+
+logging:
+  level:
+    org.springframework: INFO
+    com.petyuspolisz.sql.web-result: INFO