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 | |
} | |
} |