blob: 6e92af404f671d56061bc8b652573e1ec778b33f [file] [log] [blame]
package com.supwisdom.db
import android.content.ContentValues
import android.content.Context
import android.database.Cursor
import com.supwisdom.entity.ControlParaRecord
import java.util.concurrent.locks.Lock
import java.util.concurrent.locks.ReentrantLock
/**
** create by zzq on 2019/7/24
** @desc
**/
class ControlParaDao constructor(context: Context) {
private val dbHelper = DBParaHelper.getInstance(context)
private val TABLE = DBParaHelper.TABLE_NAME_CONTROLPARA
private val lock = ReentrantLock()
fun getLock(): Lock {
return lock
}
fun replace(record: ControlParaRecord): Boolean {
val db = dbHelper.readableDatabase
val values = getContentValues(record)
try {
db.beginTransaction()
if (db.replace(TABLE, null, values) > 0) {
return false
}
db.setTransactionSuccessful()
return true
} finally {
db.endTransaction()
}
}
fun replace(paraname: String, paraval: String): Boolean {
val db = dbHelper.readableDatabase
val values = ContentValues()
values.put(BeanPropEnum.ControlPara.paraname.toString(), paraname)
values.put(BeanPropEnum.ControlPara.paraval.toString(), paraval)
try {
db.beginTransaction()
if (db.replace(TABLE, null, values) < 0) {
return false
}
db.setTransactionSuccessful()
return true
} finally {
db.endTransaction()
}
}
fun update(record: ControlParaRecord): Boolean {
val db = dbHelper.writableDatabase
val values = getContentValues(record)
try {
db.beginTransaction()
if (db.update(
TABLE,
values,
BeanPropEnum.ControlPara.paraname.toString() + "=?",
arrayOf(record.paraname)
) > 0
) {
db.setTransactionSuccessful()
return true
}
} finally {
db.endTransaction()
}
return false
}
fun get(paraname: String): ControlParaRecord? {
val db = dbHelper.readableDatabase
var cursor: Cursor? = null
try {
cursor = db.query(
TABLE, null, BeanPropEnum.ControlPara.paraname.toString() + "=?",
arrayOf(paraname), null, null, null
)
if (cursor != null && cursor.moveToNext()) {
return getRecord(cursor)
}
} finally {
cursor?.close()
}
return null
}
fun clear(): Boolean {
val db = dbHelper.writableDatabase
try {
db.beginTransaction()
if (db.delete(TABLE, null, null) < 0) {
return false
}
db.setTransactionSuccessful()
return true
} finally {
db.endTransaction()
}
}
private fun getRecord(cursor: Cursor): ControlParaRecord {
val record = ControlParaRecord()
record.paraname = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ControlPara.paraname.toString()))
record.paraval = cursor.getString(cursor.getColumnIndex(BeanPropEnum.ControlPara.paraval.toString()))
return record
}
private fun getContentValues(record: ControlParaRecord): ContentValues {
val values = ContentValues()
values.put(BeanPropEnum.ControlPara.paraname.toString(), record.paraname)
values.put(BeanPropEnum.ControlPara.paraval.toString(), record.paraval)
return values
}
}