]> uap-core.de Git - rssreader.git/commitdiff
remove connection field from Database and always use the DataSource
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Fri, 29 Aug 2025 18:15:41 +0000 (20:15 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Fri, 29 Aug 2025 18:15:41 +0000 (20:15 +0200)
rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt

index 214e16dc555a3429447c56d390834d1356c82ae5..d67db36b108804902d00f5ae3409367dfc4c9a0c 100644 (file)
@@ -12,18 +12,15 @@ import java.sql.DriverManager
 import java.sql.Statement
 
 object Database {
-    val connection: Connection
     val dataSource: HikariDataSource
 
     init {
-        connection = DriverManager.getConnection("jdbc:h2:~/.rssreader/feeds")
-
         val config = HikariConfig()
         config.jdbcUrl = "jdbc:h2:~/.rssreader/feeds"
         config.maximumPoolSize = 16
         dataSource = HikariDataSource(config)
 
-        ensureSchema(connection)
+        ensureSchema(dataSource.connection)
     }
 
     private fun ensureSchema(conn: Connection) {
@@ -97,7 +94,7 @@ object Database {
     public fun getFeedTree(context: Context) : MutableList<FeedGroup> {
         val groups = mutableListOf<FeedGroup>()
 
-        connection.createStatement().use { stmt ->
+        dataSource.connection.createStatement().use { stmt ->
             val rs = stmt.executeQuery("""
                 select
                     g.group_id,
@@ -134,7 +131,7 @@ object Database {
 
     public fun newFeedGroup(context: Context, name: String) : FeedGroup {
         var groupId = 0
-        connection.prepareStatement("""
+        dataSource.connection.prepareStatement("""
             insert into groups (pos, name) select coalesce(max(pos), 0)+1, ? from groups
         """.trimIndent(), Statement.RETURN_GENERATED_KEYS).use { stmt ->
             stmt.setString(1, name)
@@ -159,6 +156,7 @@ object Database {
         cert: String? = null) : FeedCollection
     {
         var feedcollectionId = -1
+        val connection = dataSource.connection
         connection.prepareStatement("""
             insert into feedcollections (group_id, pos, name) select ?, coalesce(max(pos), 0)+1, ? from groups
         """.trimIndent(), Statement.RETURN_GENERATED_KEYS).use { stmt ->
@@ -197,7 +195,7 @@ object Database {
     public fun getItems(feedCollection: FeedCollection, maxItems: Int) : MutableList<Item> {
         val items = mutableListOf<Item>()
 
-        connection.prepareStatement("""
+        dataSource.connection.prepareStatement("""
             select I.*, F.URL from items I
             inner join feeds F on I.feed_id = F.feed_id
             where F.feedcollection_id = ? order by pub_date desc limit ?
@@ -228,7 +226,7 @@ object Database {
     public fun getAllFeeds() : MutableList<Feed> {
         val feeds = mutableListOf<Feed>()
 
-        connection.prepareStatement("""
+        dataSource.connection.prepareStatement("""
             select * from feeds
         """.trimIndent()).use { stmt ->
             stmt.executeQuery().use { rs ->