Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
doc. Ing. Jaroslav Porubän PhD.
gamestudio2020
Commits
fcbcf3a9
Commit
fcbcf3a9
authored
Apr 05, 2020
by
doc. Ing. Jaroslav Porubän PhD.
Browse files
7. prednaska
parent
e0d11829
Changes
8
Hide whitespace changes
Inline
Side-by-side
.gitignore
0 → 100644
View file @
fcbcf3a9
# Created by https://www.gitignore.io/api/java,maven,intellij
# Edit at https://www.gitignore.io/?templates=java,maven,intellij
### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### Intellij Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
# Sonarlint plugin
.idea/**/sonarlint/
# SonarQube Plugin
.idea/**/sonarIssues.xml
# Markdown Navigator plugin
.idea/**/markdown-navigator.xml
.idea/**/markdown-navigator/
### Java ###
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
### Maven ###
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar
.flattened-pom.xml
# End of https://www.gitignore.io/api/java,maven,intellij
\ No newline at end of file
.idea/compiler.xml
View file @
fcbcf3a9
...
...
@@ -10,4 +10,9 @@
</profile>
</annotationProcessing>
</component>
<component
name=
"JavacSettings"
>
<option
name=
"ADDITIONAL_OPTIONS_OVERRIDE"
>
<module
name=
"gamestudio2020"
options=
"-parameters"
/>
</option>
</component>
</project>
\ No newline at end of file
pom.xml
View file @
fcbcf3a9
...
...
@@ -13,6 +13,13 @@
<name>
gamestudio
</name>
<description>
Gamestudio Project
</description>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.2.6.RELEASE
</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
...
...
@@ -22,6 +29,17 @@
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-jpa
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-devtools
</artifactId>
<optional>
true
</optional>
</dependency>
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>
org.postgresql
</groupId>
...
...
src/main/java/sk/tuke/gamestudio/SpringClient.java
0 → 100644
View file @
fcbcf3a9
package
sk.tuke.gamestudio
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
sk.tuke.gamestudio.game.mines.consoleui.ConsoleUI
;
import
sk.tuke.gamestudio.game.mines.core.Field
;
import
sk.tuke.gamestudio.service.ScoreService
;
import
sk.tuke.gamestudio.service.ScoreServiceJDBC
;
import
sk.tuke.gamestudio.service.ScoreServiceJPA
;
@SpringBootApplication
@Configuration
public
class
SpringClient
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
SpringClient
.
class
,
args
);
}
@Bean
public
CommandLineRunner
runner
(
ConsoleUI
ui
)
{
return
args
->
ui
.
play
();
}
@Bean
public
ConsoleUI
consoleUI
(
Field
field
)
{
return
new
ConsoleUI
(
field
);
}
@Bean
public
Field
field
()
{
return
new
Field
(
9
,
9
,
1
);
}
@Bean
public
ScoreService
scoreService
()
{
//return new ScoreServiceJDBC();
return
new
ScoreServiceJPA
();
}
}
\ No newline at end of file
src/main/java/sk/tuke/gamestudio/entity/Score.java
View file @
fcbcf3a9
package
sk.tuke.gamestudio.entity
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.NamedQuery
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.Objects
;
@Entity
@NamedQuery
(
name
=
"Score.selectToScores"
,
query
=
"select s from Score s where s.game=:game order by s.points desc"
)
public
class
Score
implements
Comparable
<
Score
>,
Serializable
{
@Id
@GeneratedValue
private
int
ident
;
private
String
player
;
private
int
points
;
...
...
@@ -13,6 +23,9 @@ public class Score implements Comparable<Score>, Serializable {
private
Date
playedOn
;
public
Score
()
{
}
public
Score
(
String
player
,
int
points
,
String
game
,
Date
playedOn
)
{
this
.
player
=
player
;
this
.
points
=
points
;
...
...
src/main/java/sk/tuke/gamestudio/game/mines/consoleui/ConsoleUI.java
View file @
fcbcf3a9
package
sk.tuke.gamestudio.game.mines.consoleui
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
sk.tuke.gamestudio.entity.Score
;
import
sk.tuke.gamestudio.game.mines.core.Clue
;
import
sk.tuke.gamestudio.game.mines.core.Field
;
...
...
@@ -23,7 +24,9 @@ public class ConsoleUI {
private
final
Field
field
;
//private ScoreService scoreService = new ScoreServiceFile();
private
ScoreService
scoreService
=
new
ScoreServiceJDBC
();
//private ScoreService scoreService = new ScoreServiceJDBC();
@Autowired
private
ScoreService
scoreService
;
public
ConsoleUI
(
Field
field
)
{
this
.
field
=
field
;
...
...
src/main/java/sk/tuke/gamestudio/service/ScoreServiceJPA.java
0 → 100644
View file @
fcbcf3a9
package
sk.tuke.gamestudio.service
;
import
sk.tuke.gamestudio.entity.Score
;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.transaction.Transactional
;
import
java.util.List
;
@Transactional
public
class
ScoreServiceJPA
implements
ScoreService
{
@PersistenceContext
private
EntityManager
entityManager
;
@Override
public
void
addScore
(
Score
score
)
{
entityManager
.
persist
(
score
);
}
@Override
public
List
<
Score
>
getTopScores
(
String
gameName
)
{
return
entityManager
.
createNamedQuery
(
"Score.selectToScores"
)
.
setParameter
(
"game"
,
gameName
)
.
setMaxResults
(
10
).
getResultList
();
}
}
src/main/resources/application.properties
0 → 100644
View file @
fcbcf3a9
#https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
spring.datasource.url
=
jdbc:postgresql://localhost/gamestudio
spring.datasource.username
=
postgres
spring.datasource.password
=
postgres
spring.datasource.driver-class-name
=
org.postgresql.Driver
spring.datasource.hikari.maximumPoolSize
=
2
#spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.hibernate.ddl-auto
=
update
spring.jpa.show-sql
=
true
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation
=
true
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment