[B][O] Use MongoDB
This commit is contained in:
@@ -5,7 +5,7 @@ plugins {
|
|||||||
id("io.spring.dependency-management") version "1.0.10.RELEASE"
|
id("io.spring.dependency-management") version "1.0.10.RELEASE"
|
||||||
kotlin("jvm") version "1.4.21"
|
kotlin("jvm") version "1.4.21"
|
||||||
kotlin("plugin.spring") 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"
|
group = "org.hydev.ios"
|
||||||
@@ -17,16 +17,20 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
|
|
||||||
implementation("org.springframework.boot:spring-boot-starter-web")
|
implementation("org.springframework.boot:spring-boot-starter-web")
|
||||||
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
|
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
|
||||||
implementation("org.jetbrains.kotlin:kotlin-reflect")
|
implementation("org.jetbrains.kotlin:kotlin-reflect")
|
||||||
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
|
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
|
||||||
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
|
|
||||||
testImplementation("org.springframework.boot:spring-boot-starter-test")
|
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")
|
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> {
|
tasks.withType<KotlinCompile> {
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package org.hydev.ios.alarmclock
|
package org.hydev.ios.alarmclock
|
||||||
|
|
||||||
|
import org.hydev.ios.alarmclock.data.UserRepo
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication
|
import org.springframework.boot.autoconfigure.SpringBootApplication
|
||||||
import org.springframework.boot.runApplication
|
import org.springframework.boot.runApplication
|
||||||
|
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
|
@EnableMongoRepositories(basePackageClasses = [UserRepo::class])
|
||||||
class AlarmClockApplication
|
class AlarmClockApplication
|
||||||
|
|
||||||
fun main(args: Array<String>)
|
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.bad
|
||||||
import org.hydev.ios.alarmclock.passwordHash
|
import org.hydev.ios.alarmclock.passwordHash
|
||||||
|
import org.springframework.data.annotation.Id
|
||||||
import org.springframework.data.domain.Example
|
import org.springframework.data.domain.Example
|
||||||
import org.springframework.data.domain.ExampleMatcher
|
import org.springframework.data.domain.ExampleMatcher
|
||||||
import org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.ignoreCase
|
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.GetMapping
|
||||||
import org.springframework.web.bind.annotation.RequestMapping
|
import org.springframework.web.bind.annotation.RequestMapping
|
||||||
import org.springframework.web.bind.annotation.RequestParam
|
import org.springframework.web.bind.annotation.RequestParam
|
||||||
import org.springframework.web.bind.annotation.RestController
|
import org.springframework.web.bind.annotation.RestController
|
||||||
import javax.persistence.*
|
|
||||||
import javax.validation.constraints.Email
|
import javax.validation.constraints.Email
|
||||||
import javax.validation.constraints.NotNull
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The database model for an user
|
* The database model for an user
|
||||||
@@ -22,21 +23,18 @@ import javax.validation.constraints.NotNull
|
|||||||
* @author Vanilla (https://github.com/VergeDX)
|
* @author Vanilla (https://github.com/VergeDX)
|
||||||
* @since 2021-01-09 10:48
|
* @since 2021-01-09 10:48
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Document(collation = "user")
|
||||||
data class User(
|
data class User(
|
||||||
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
|
@Id
|
||||||
var id: Long = 0,
|
var id: Long = 0,
|
||||||
|
|
||||||
@NotNull @Column(length = 32)
|
|
||||||
var name: String,
|
var name: String,
|
||||||
|
|
||||||
@NotNull @Column(length = 256)
|
@Indexed(unique = true)
|
||||||
var email: String,
|
var email: String,
|
||||||
|
|
||||||
@NotNull @Column(length = 100)
|
|
||||||
var passHash: String = "",
|
var passHash: String = "",
|
||||||
|
|
||||||
@NotNull @Column(length = 32)
|
|
||||||
var passSalt: String = ""
|
var passSalt: String = ""
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@@ -48,7 +46,7 @@ data class User(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface UserRepo: JpaRepository<User, Long>
|
interface UserRepo: MongoRepository<User, String>
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/user")
|
@RequestMapping("/api/user")
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
|
|
||||||
spring.datasource.url=jdbc:mariadb://192.168.0.22:3306/clock
|
#spring.datasource.url=jdbc:mariadb://192.168.0.22:3306/clock
|
||||||
spring.datasource.username=root
|
#spring.datasource.username=root
|
||||||
spring.datasource.password=Yay, you found my database password. You're the best hacker in the world.
|
#spring.datasource.password=<insert password here>
|
||||||
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
|
#spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
|
||||||
spring.jpa.hibernate.ddl-auto=update
|
#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
|
||||||
|
|||||||
Reference in New Issue
Block a user