commit 14072025

This commit is contained in:
rdkartono
2025-07-14 07:22:49 +07:00
parent 474b03444e
commit 36135e2fa1
5 changed files with 162 additions and 1 deletions

View File

@@ -3,6 +3,8 @@ package database
import org.mariadb.jdbc.Connection
import org.tinylog.Logger
import java.sql.DriverManager
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
/**
* A class to manage a connection to a MariaDB database.
@@ -13,6 +15,7 @@ import java.sql.DriverManager
* @property username The username for the database connection.
* @property password The password for the database connection.
*/
@Suppress("unused")
class MariaDB (
address : String = "localhost",
port : Int = 3306,
@@ -30,6 +33,8 @@ class MariaDB (
connection = DriverManager.getConnection("jdbc:mariadb://$address:$port/$dbName", username, password) as Connection
Logger.info("Connected to MariaDB" as Any)
connected = true
Reload_Soundbank()
Reload_Messagebank()
} catch (e : Exception) {
Logger.error("Failed to connect to MariaDB: ${e.message}" as Any)
}
@@ -49,6 +54,116 @@ class MariaDB (
connected = false
}
/**
* Get Log from database
* @return ArrayList of Log objects
*/
fun GetLog() : ArrayList<Log> {
val logList = ArrayList<Log>()
try {
val statement = connection?.createStatement()
val resultSet = statement?.executeQuery("SELECT * FROM log")
while (resultSet?.next() == true) {
val log = Log(
resultSet.getLong("index").toULong(),
resultSet.getString("datenya"),
resultSet.getString("timenya"),
resultSet.getString("machine"),
resultSet.getString("description")
)
logList.add(log)
}
} catch (e : Exception) {
Logger.error("Error fetching logs: ${e.message}" as Any)
}
return logList
}
/**
* Get Log from database by date
* @param date The date to filter logs by (format: DD/MM/YYYY)
* @return ArrayList of Log objects for the specified date
*/
fun GetLog(date : String) : ArrayList<Log> {
val logList = ArrayList<Log>()
try {
val statement = connection?.prepareStatement("SELECT * FROM log WHERE datenya = ?")
statement?.setString(1, date)
val resultSet = statement?.executeQuery()
while (resultSet?.next() == true) {
val log = Log(
resultSet.getLong("index").toULong(),
resultSet.getString("datenya"),
resultSet.getString("timenya"),
resultSet.getString("machine"),
resultSet.getString("description")
)
logList.add(log)
}
} catch (e : Exception) {
Logger.error("Error fetching logs for date $date: ${e.message}" as Any)
}
return logList
}
/**
* Get Log from database by date
* @param date The date to filter logs by (as LocalDateTime)
* @return ArrayList of Log objects for the specified date
*/
fun GetLog(date : LocalDateTime) : ArrayList<Log> {
val datenya = DateTimeFormatter.ofPattern("DD/MM/YYYY").format(date)
return GetLog(datenya)
}
/**
* Reloads the soundbank list from the database.
*/
private fun Reload_Soundbank() {
SoundbankList.clear()
try {
val statement = connection?.createStatement()
val resultSet = statement?.executeQuery("SELECT * FROM soundbank")
while (resultSet?.next() == true) {
val soundbank = Soundbank(
resultSet.getLong("index").toUInt(),
resultSet.getString("Description"),
resultSet.getString("TAG"),
resultSet.getString("Category"),
resultSet.getString("Language"),
resultSet.getString("VoiceType"),
resultSet.getString("Path")
)
SoundbankList.add(soundbank)
}
} catch (e : Exception) {
Logger.error("Error fetching soundbanks: ${e.message}" as Any)
}
}
/**
* Reloads the messagebank list from the database.
*/
private fun Reload_Messagebank() {
MessagebankList.clear()
try {
val statement = connection?.createStatement()
val resultSet = statement?.executeQuery("SELECT * FROM messagebank")
while (resultSet?.next() == true) {
val messagebank = Messagebank(
resultSet.getLong("index").toUInt(),
resultSet.getString("Description"),
resultSet.getString("TAG"),
resultSet.getInt("Category").toUInt(),
resultSet.getString("Language"),
resultSet.getString("VoiceType"),
resultSet.getString("Path")
)
MessagebankList.add(messagebank)
}
} catch (e : Exception) {
Logger.error("Error fetching messagebanks: ${e.message}" as Any)
}
}
}