[B][O] Use MongoDB

This commit is contained in:
Hykilpikonna
2021-01-12 10:46:23 -05:00
parent 391d9e955b
commit 8c70203c78
5 changed files with 49 additions and 20 deletions
+9 -5
View File
@@ -5,7 +5,7 @@ plugins {
id("io.spring.dependency-management") version "1.0.10.RELEASE"
kotlin("jvm") version "1.4.21"
kotlin("plugin.spring") version "1.4.21"
kotlin("plugin.jpa") version "1.4.21"
// kotlin("plugin.jpa") version "1.4.21"
}
group = "org.hydev.ios"
@@ -17,16 +17,20 @@ repositories {
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
testImplementation("org.springframework.boot:spring-boot-starter-test")
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation
implementation("org.springframework.boot", "spring-boot-starter-validation", "2.4.1")
// MongoDB
implementation(group = "org.springframework.data", name = "spring-data-mongodb", version = "3.1.2")
implementation(group = "org.springframework.boot", name = "spring-boot-starter-data-mongodb")
// MariaDB
// implementation("org.springframework.boot:spring-boot-starter-data-jpa")
// runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
}
tasks.withType<KotlinCompile> {
@@ -1,9 +1,12 @@
package org.hydev.ios.alarmclock
import org.hydev.ios.alarmclock.data.UserRepo
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories
@SpringBootApplication
@EnableMongoRepositories(basePackageClasses = [UserRepo::class])
class AlarmClockApplication
fun main(args: Array<String>)
@@ -0,0 +1,21 @@
package org.hydev.ios.alarmclock.data
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
/**
* TODO: Write a description for this class!
*
* @author HyDEV Team (https://github.com/HyDevelop)
* @author Hykilpikonna (https://github.com/hykilpikonna)
* @author Vanilla (https://github.com/VergeDX)
* @since 2021-01-12 09:28
*/
@RestController
@RequestMapping("/api")
class Test
{
@GetMapping("/echo")
fun echo(message: String?) = message
}
@@ -2,17 +2,18 @@ package org.hydev.ios.alarmclock.data
import org.hydev.ios.alarmclock.bad
import org.hydev.ios.alarmclock.passwordHash
import org.springframework.data.annotation.Id
import org.springframework.data.domain.Example
import org.springframework.data.domain.ExampleMatcher
import org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.ignoreCase
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.mongodb.core.index.Indexed
import org.springframework.data.mongodb.core.mapping.Document
import org.springframework.data.mongodb.repository.MongoRepository
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
import javax.persistence.*
import javax.validation.constraints.Email
import javax.validation.constraints.NotNull
/**
* The database model for an user
@@ -22,21 +23,18 @@ import javax.validation.constraints.NotNull
* @author Vanilla (https://github.com/VergeDX)
* @since 2021-01-09 10:48
*/
@Entity
@Document(collation = "user")
data class User(
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
var id: Long = 0,
@NotNull @Column(length = 32)
var name: String,
@NotNull @Column(length = 256)
@Indexed(unique = true)
var email: String,
@NotNull @Column(length = 100)
var passHash: String = "",
@NotNull @Column(length = 32)
var passSalt: String = ""
)
{
@@ -48,7 +46,7 @@ data class User(
}
}
interface UserRepo: JpaRepository<User, Long>
interface UserRepo: MongoRepository<User, String>
@RestController
@RequestMapping("/api/user")
@@ -1,6 +1,9 @@
spring.datasource.url=jdbc:mariadb://192.168.0.22:3306/clock
spring.datasource.username=root
spring.datasource.password=Yay, you found my database password. You're the best hacker in the world.
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
#spring.datasource.url=jdbc:mariadb://192.168.0.22:3306/clock
#spring.datasource.username=root
#spring.datasource.password=<insert password here>
#spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
#spring.jpa.hibernate.ddl-auto=update
spring.data.mongodb.uri=mongodb://hykilp:<insert-password-here>@192.168.0.22:27017/?authSource=admin&retryWrites=true
spring.data.mongodb.database=clock