description CLOB,
author VARCHAR,
pub_date TIMESTAMP,
+ updated TIMESTAMP,
guid VARCHAR UNIQUE,
contentText CLOB,
contentHTML CLOB,
item.description = rs.getString("description")
item.author = rs.getString("author")
item.pubDate = rs.getObject("pub_date", java.time.LocalDateTime::class.java)
+ item.updated = rs.getObject("updated", java.time.LocalDateTime::class.java)
item.guid = rs.getString("guid")
item.contentText = rs.getString("contentText")
item.contentHtml = rs.getString("contentHTML")
public fun addItems(items: Collection<Item>) {
dataSource.connection.use { conn ->
conn.prepareStatement("""
- insert into items (feed_id, title, link, category, description, author, pub_date, guid, contentText, contentHTML)
- select ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
+ insert into items (feed_id, title, link, category, description, author, pub_date, updated, guid, contentText, contentHTML)
+ select ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
where ? not in (select guid from items)
""".trimIndent()).use { stmt ->
items.forEach { item ->
stmt.setString(5, item.description)
stmt.setString(6, item.author)
stmt.setTimestamp(7, item.pubDate?.let { java.sql.Timestamp.valueOf(it) })
- stmt.setString(8, item.guid)
- stmt.setString(9, item.contentText)
- stmt.setString(10, item.contentHtml)
- stmt.setString(11, item.guid)
+ stmt.setTimestamp(8, item.updated?.let { java.sql.Timestamp.valueOf(it) })
+ stmt.setString(9, item.guid)
+ stmt.setString(10, item.contentText)
+ stmt.setString(11, item.contentHtml)
+ stmt.setString(12, item.guid)
stmt.addBatch()
}
stmt.executeBatch()