Skip to content

Commit b4ac6e3

Browse files
committed
Refactor the SQL statements splicing, use the array attaching for String params
1 parent c594567 commit b4ac6e3

40 files changed

+206
-198
lines changed

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,26 @@
22

33
- Date format: YYYY-MM-dd
44

5+
## v1.3.0 / 2024-04-16
6+
7+
### All
8+
9+
* Update `Kotlin`'s version to `1.9.23`
10+
11+
### sqllin-dsl
12+
13+
* Update `kotlinx.coroutines`'s version to `1.8.0`
14+
* Update `kotlinx.serialization`'s version to `1.6.3`
15+
* Modified the SQL statements' splicing method, that fixed the [issue#77](https://github.com/ctripcorp/SQLlin/issues/77) that users can't read/write special symbols as the values in SQL statements.
16+
17+
### sqllin-driver
18+
19+
* Update the `sqlite-jdbc`'s version to `3.45.3.0`
20+
21+
### sqllin-processor
22+
23+
* Update `KSP`'s version to `1.9.23-1.0.20`
24+
525
## v1.2.4 / 2024-01-05
626

727
### All

gradle.properties

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
VERSION=1.2.4
1+
VERSION=1.3.0
22
GROUP=com.ctrip.kotlin
33

4-
kotlinVersion=1.9.22
5-
kspVersion=1.9.22-1.0.16
6-
serializationVersion=1.6.2
7-
coroutinesVersion=1.7.3
4+
kotlinVersion=1.9.23
5+
kspVersion=1.9.23-1.0.20
6+
serializationVersion=1.6.3
7+
coroutinesVersion=1.8.0
88
androidxAnnotationVersion=1.7.1
99

1010
#Maven Publish Information
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Tue Mar 08 15:11:46 CST 2022
22
distributionBase=GRADLE_USER_HOME
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists
66
zipStoreBase=GRADLE_USER_HOME

sqllin-driver/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ kotlin {
9595

9696
val jvmMain by getting {
9797
dependencies {
98-
implementation("org.xerial:sqlite-jdbc:3.44.1.0")
98+
implementation("org.xerial:sqlite-jdbc:3.45.3.0")
9999
}
100100
}
101101
}

sqllin-driver/src/androidMain/kotlin/com/ctrip/sqllin/driver/AndroidDatabaseConnection.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@ import android.database.sqlite.SQLiteDatabase
2525

2626
internal class AndroidDatabaseConnection(private val database: SQLiteDatabase) : DatabaseConnection {
2727

28-
override fun execSQL(sql: String, bindParams: Array<Any?>?) =
28+
override fun execSQL(sql: String, bindParams: Array<out Any?>?) =
2929
if (bindParams == null)
3030
database.execSQL(sql)
3131
else
3232
database.execSQL(sql, bindParams)
3333

34-
override fun executeInsert(sql: String, bindParams: Array<Any?>?) = execSQL(sql, bindParams)
34+
override fun executeInsert(sql: String, bindParams: Array<out Any?>?) = execSQL(sql, bindParams)
3535

36-
override fun executeUpdateDelete(sql: String, bindParams: Array<Any?>?) = execSQL(sql, bindParams)
36+
override fun executeUpdateDelete(sql: String, bindParams: Array<out Any?>?) = execSQL(sql, bindParams)
3737

38-
override fun query(sql: String, bindParams: Array<String?>?): CommonCursor = AndroidCursor(database.rawQuery(sql, bindParams))
38+
override fun query(sql: String, bindParams: Array<out String?>?): CommonCursor = AndroidCursor(database.rawQuery(sql, bindParams))
3939

4040
override fun beginTransaction() = database.beginTransaction()
4141
override fun endTransaction() = database.endTransaction()

sqllin-driver/src/commonMain/kotlin/com/ctrip/sqllin/driver/DatabaseConnection.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ package com.ctrip.sqllin.driver
2323

2424
public interface DatabaseConnection {
2525

26-
public fun execSQL(sql: String, bindParams: Array<Any?>? = null)
27-
public fun executeInsert(sql: String, bindParams: Array<Any?>? = null)
28-
public fun executeUpdateDelete(sql: String, bindParams: Array<Any?>? = null)
26+
public fun execSQL(sql: String, bindParams: Array<out Any?>? = null)
27+
public fun executeInsert(sql: String, bindParams: Array<out Any?>? = null)
28+
public fun executeUpdateDelete(sql: String, bindParams: Array<out Any?>? = null)
2929

30-
public fun query(sql: String, bindParams: Array<String?>? = null): CommonCursor
30+
public fun query(sql: String, bindParams: Array<out String?>? = null): CommonCursor
3131

3232
public fun beginTransaction()
3333
public fun setTransactionSuccessful()

sqllin-driver/src/jvmMain/kotlin/com/ctrip/sqllin/driver/AbstractJdbcDatabaseConnection.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ internal abstract class AbstractJdbcDatabaseConnection : DatabaseConnection {
2929

3030
abstract fun createStatement(sql: String): PreparedStatement
3131

32-
protected fun bindParamsToSQL(sql: String, bindParams: Array<Any?>?): PreparedStatement = createStatement(sql).apply {
32+
protected fun bindParamsToSQL(sql: String, bindParams: Array<out Any?>?): PreparedStatement = createStatement(sql).apply {
3333
bindParams?.run {
3434
require(isNotEmpty()) { "Empty bindArgs" }
3535
forEachIndexed { index, any ->

sqllin-driver/src/jvmMain/kotlin/com/ctrip/sqllin/driver/ConcurrentDatabaseConnection.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,19 @@ internal class ConcurrentDatabaseConnection(private val delegateConnection: Data
2828

2929
private val accessLock = ReentrantLock()
3030

31-
override fun execSQL(sql: String, bindParams: Array<Any?>?) = accessLock.withLock {
31+
override fun execSQL(sql: String, bindParams: Array<out Any?>?) = accessLock.withLock {
3232
delegateConnection.execSQL(sql, bindParams)
3333
}
3434

35-
override fun executeInsert(sql: String, bindParams: Array<Any?>?) = accessLock.withLock {
35+
override fun executeInsert(sql: String, bindParams: Array<out Any?>?) = accessLock.withLock {
3636
delegateConnection.executeInsert(sql, bindParams)
3737
}
3838

39-
override fun executeUpdateDelete(sql: String, bindParams: Array<Any?>?) = accessLock.withLock {
39+
override fun executeUpdateDelete(sql: String, bindParams: Array<out Any?>?) = accessLock.withLock {
4040
delegateConnection.executeUpdateDelete(sql, bindParams)
4141
}
4242

43-
override fun query(sql: String, bindParams: Array<String?>?): CommonCursor = accessLock.withLock {
43+
override fun query(sql: String, bindParams: Array<out String?>?): CommonCursor = accessLock.withLock {
4444
delegateConnection.query(sql, bindParams)
4545
}
4646

sqllin-driver/src/jvmMain/kotlin/com/ctrip/sqllin/driver/JdbcDatabaseConnection.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,25 @@ import java.util.concurrent.atomic.AtomicBoolean
2929

3030
internal class JdbcDatabaseConnection(private val connection: Connection) : AbstractJdbcDatabaseConnection() {
3131

32-
override fun execSQL(sql: String, bindParams: Array<Any?>?) {
32+
override fun execSQL(sql: String, bindParams: Array<out Any?>?) {
3333
bindParamsToSQL(sql, bindParams).use {
3434
it.execute()
3535
}
3636
}
3737

38-
override fun executeInsert(sql: String, bindParams: Array<Any?>?) {
38+
override fun executeInsert(sql: String, bindParams: Array<out Any?>?) {
3939
executeUpdate(sql, bindParams)
4040
}
4141

42-
override fun executeUpdateDelete(sql: String, bindParams: Array<Any?>?) {
42+
override fun executeUpdateDelete(sql: String, bindParams: Array<out Any?>?) {
4343
executeUpdate(sql, bindParams)
4444
}
4545

46-
private fun executeUpdate(sql: String, bindParams: Array<Any?>?): Int = bindParamsToSQL(sql, bindParams).use {
46+
private fun executeUpdate(sql: String, bindParams: Array<out Any?>?): Int = bindParamsToSQL(sql, bindParams).use {
4747
it.executeUpdate()
4848
}
4949

50-
override fun query(sql: String, bindParams: Array<String?>?): CommonCursor {
50+
override fun query(sql: String, bindParams: Array<out String?>?): CommonCursor {
5151
val statement = connection.prepareStatement(sql)
5252
bindParams?.forEachIndexed { index, str ->
5353
str?.let {

sqllin-driver/src/nativeMain/kotlin/com/ctrip/sqllin/driver/ConcurrentDatabaseConnection.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,19 @@ internal class ConcurrentDatabaseConnection(
3030

3131
private val accessLock = Lock()
3232

33-
override fun execSQL(sql: String, bindParams: Array<Any?>?) = accessLock.withLock {
33+
override fun execSQL(sql: String, bindParams: Array<out Any?>?) = accessLock.withLock {
3434
delegateConnection.execSQL(sql, bindParams)
3535
}
3636

37-
override fun executeInsert(sql: String, bindParams: Array<Any?>?) = accessLock.withLock {
37+
override fun executeInsert(sql: String, bindParams: Array<out Any?>?) = accessLock.withLock {
3838
delegateConnection.executeInsert(sql, bindParams)
3939
}
4040

41-
override fun executeUpdateDelete(sql: String, bindParams: Array<Any?>?) = accessLock.withLock {
41+
override fun executeUpdateDelete(sql: String, bindParams: Array<out Any?>?) = accessLock.withLock {
4242
delegateConnection.executeUpdateDelete(sql, bindParams)
4343
}
4444

45-
override fun query(sql: String, bindParams: Array<String?>?): CommonCursor = accessLock.withLock {
45+
override fun query(sql: String, bindParams: Array<out String?>?): CommonCursor = accessLock.withLock {
4646
delegateConnection.query(sql, bindParams)
4747
}
4848

0 commit comments

Comments
 (0)