okardec

Untitled

Sep 29th, 2020
672
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package core.base
  2.  
  3. import core.mvc.BaseVO
  4. import java.sql.Connection
  5. import java.sql.DriverManager
  6. import java.sql.SQLException
  7.  
  8.  
  9. class DB() {
  10.  
  11.     private val JDBC_URL = "jdbc:sqlite:"+Config.DB_PATH;
  12.     private lateinit var con: Connection
  13.  
  14.     init {
  15.         connect()
  16.     }
  17.  
  18.     protected fun finalize() {
  19.         close()
  20.     }
  21.  
  22.  
  23.     /**
  24.      * inicia a conexão com o banco
  25.      */
  26.     fun connect(){
  27.         try {
  28.             con = DriverManager.getConnection(JDBC_URL)
  29.         } catch (e: SQLException) {
  30.             e.message?.let { Log.add(it) }
  31.             throw Exception(e.message)
  32.         }
  33.     }
  34.     fun close() {
  35.         con.close()
  36.     }
  37.  
  38.     /**
  39.      * executa uma query especifica, utilizada nos metodos insert/delete/update
  40.      * retorna boolean se funcionou ou nao
  41.      */
  42.     fun runQuery(sqlString: String): Boolean {
  43.  
  44.         try {
  45.             con.createStatement().use { statement ->
  46.                 Log.add(sqlString)
  47.                 return statement.executeUpdate(sqlString)==1
  48.             }
  49.         } catch (e: SQLException) {
  50.             println("Erro ao executar a query : " + e.message)
  51.             return false
  52.         }
  53.     }
  54.  
  55.     /**
  56.      * metodo para se realizar select propriamente dito
  57.      * retorna um ArrayList<BaseVo>
  58.      */
  59.     fun select(sqlString: String): ArrayList<BaseVO> {
  60.         Log.add(sqlString)
  61.         ///limpa os valores para que caso seja feito outro select não esteja armazendando nada
  62.  
  63.         var fields = arrayListOf<BaseVO>()
  64.  
  65.         var fDs = BaseVO()
  66.         try {
  67.             con.createStatement().use{ statement->
  68.                 statement.executeQuery(sqlString).use{ rs->
  69.                     while (rs.next()) {
  70.                         fDs = BaseVO()
  71.                         for (i in 1..rs.metaData.columnCount) {
  72.                             fDs.addField(rs.metaData.getColumnName(i), rs.getString(rs.metaData.getColumnName(i)))
  73.                         }
  74.                         fields.add(fDs)
  75.                     }
  76.                 }
  77.             }
  78.         } catch (e: SQLException) {
  79.             Log.add("Erro ao executar a query : " + e.message)
  80.             //false
  81.         }
  82.  
  83.         return fields
  84.     }
  85.  
  86.  
  87.  
  88.  
  89.  
  90. }
RAW Paste Data