๐๏ธ Faker ํ ์คํธ ๋ฐ์ดํฐ
๐๏ธ Faker ํ
์คํธ ๋ฐ์ดํฐ
Faker
๋์
๊ทผ๊ฑฐ
- ํ์๋ ํ ์คํธ ๋ฐ์ดํฐ๋ ๋ง๋ค์ด์ง ๊ธฐ๋ฅ์ ํตํด ์์ฑํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ค.
- ๊ธฐ์กด
Sequence
์ ์ํฅ์ ์ฃผ๊ฑฐ๋ ํน์ ๊ธฐ๋ฅ์ ์ฐ์ ๋์ด ์์ฑํด์ผ ํ๋ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์SELECT
์ฟผ๋ฆฌ ์ธ์๋DB
๋ฅผ ํตํ ๋ฐ์ดํฐ ์กฐ์์ ์ง์ํด์๋ค. - ๊ทธ๋ฐ๋ฐ, ๋ฐ๋๋ก ์๊ฐํ๋ฉด ๊ธฐ์กด ๋ฐ์ดํฐ๋ ๋ค๋ฅธ ํ
์ด๋ธ์ ์ํฅ์ ์ฃผ์ง ์๋ ์ ์์๋
DB
์กฐ์์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์ฑํด๋ ๋ฌด๋ฐฉํ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. - ์ ์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ค๋, ์ด๋ค ๊ฐ์ ์ฃผ์
ํด์ผ ํ ์ง ์๊ฐํ๋ ๊ฒ์ ๋ฒ๊ฑฐ๋ก์์ ๋๊ปด ์ฝ๊ฒ ๋๋ฏธ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ์ ์๋
Faker
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ๊ฒ ๋์๋ค.
์์กด์ฑ ์ฃผ์
1
2
/* Faker */
implementation 'net.datafaker:datafaker:2.2.2'
๋๋ฏธ ๋ฐ์ดํฐ ์์ฑ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@SpringBootApplication
class Application
fun main(args: Array<String>) {
runApplication<Application>(*args)
val faker = Faker()
val url = "jdbc:log4jdbc:postgresql://localhost:5432/postgres"
val user = "postgres"
val password = "1234"
DriverManager.getConnection(url, user, password).use { conn ->
val sql = "INSERT INTO tbl_notice (id, title, content, created_at, updated_at, writer_email) VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT (id) DO NOTHING"
conn.prepareStatement(sql).use { stmt ->
for (i in 1..101) {
stmt.setInt(1, i)
stmt.setString(2, faker.dog().name())
stmt.setString(3, faker.dog().sound())
stmt.setTimestamp(4, faker.date().birthday())
stmt.setTimestamp(5, faker.date().birthday())
stmt.setString(6, "test1@test.com")
stmt.executeUpdate()
}
stmt.close()
}
conn.close()
}
}
Kotlin
์ธ์ด๋ก ์์ฑ๋ ์ฝ๋์ด๋ค.- ํ๋ก์ ํธ๋ฅผ ์คํํ๋ฉด ์ด์
main()
๋ฉ์๋์ ํจ๊ปINSERT
๋ฌธ์ด ์คํ๋๋ค. - ํ๋ก์ ํธ๋ฅผ ๋ค์ ์คํ ์ ๋๋ฏธ ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ ์กด์ฌํ ๊ฒฝ์ฐ
ID
๊ฐ ์ค๋ณต๋๋ ๋ฌธ์ ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค.
101
๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์ ์์ฑ๋์๋ค.
This post is licensed under CC BY 4.0 by the author.