[B][O] Use MongoDB
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user