commit 14072025
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user