Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package core.base
- import java.sql.Connection
- import java.sql.DriverManager
- import java.sql.SQLException
- class DB() {
- private val JDBC_URL = "jdbc:sqlite:"+Config.DB_PATH;
- private lateinit var con: Connection
- init {
- connect()
- }
- protected fun finalize() {
- close()
- }
- /**
- * inicia a conexão com o banco
- */
- fun connect(){
- try {
- con = DriverManager.getConnection(JDBC_URL)
- } catch (e: SQLException) {
- e.message?.let { Log.add(it) }
- throw Exception(e.message)
- }
- }
- fun close() {
- con.close()
- }
- /**
- * executa uma query especifica, utilizada nos metodos insert/delete/update
- * retorna boolean se funcionou ou nao
- */
- fun runQuery(sqlString: String): Boolean {
- try {
- con.createStatement().use { statement ->
- Log.add(sqlString)
- return statement.executeUpdate(sqlString)==1
- }
- } catch (e: SQLException) {
- println("Erro ao executar a query : " + e.message)
- return false
- }
- }
- /**
- * metodo para se realizar select propriamente dito
- * com preenchimento de variaveis prórpias
- */
- var totalRows = 0
- private set
- var fields = mutableMapOf<Int, Any>()
- private set
- fun select(sqlString: String) {
- Log.add(sqlString)
- ///limpa os valores para que caso seja feito outro select não esteja armazendando nada
- totalRows = 0
- fields = mutableMapOf<Int, Any>()
- var fDs = mutableMapOf<String, Any>()
- return try {
- con.createStatement().use{ statement->
- statement.executeQuery(sqlString).use{ rs->
- var n = 0
- while (rs.next()) {
- totalRows = rs.row
- fDs = mutableMapOf<String, Any>()
- for (i in 1..rs.metaData.columnCount) {
- //println(rs.metaData.getColumnName(i) + " - " + rs.metaData.getColumnTypeName(i) + " - " + rs.getString(rs.metaData.getColumnName(i)) )
- fDs.put(rs.metaData.getColumnName(i), when(rs.metaData.getColumnTypeName(i)){
- "INTEGER" -> rs.getInt(rs.metaData.getColumnName(i))
- "STRING" -> rs.getString(rs.metaData.getColumnName(i))
- "DOUBLE" -> rs.getDouble(rs.metaData.getColumnName(i))
- "DATE" -> rs.getDate(rs.metaData.getColumnName(i))
- else -> rs.getString(rs.metaData.getColumnName(i))
- })
- }
- fields.put(n,fDs)
- n++
- }
- }
- }
- } catch (e: SQLException) {
- Log.add("Erro ao executar a query : " + e.message)
- //false
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement