첨부 파일을 project_folder\app\libs 안에 넣어 두면 됩니다.
build.gradle(app)에 아래 문구가 있으면 자동으로 참조합니다.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
1. 주 Activity에서 Database로 연결하는 게 막혀 있어서 Thread를 열어서 접속하여야 한다.
2. Thread 안에서 Toast 접근이 안된다. Handler를 이용하여 가능하다.
3. 소리 재생(ToneGenerator)도 Thread 안에서는 작동하지 않는다. Handler를 이용하여 가능하다.
4. 마리아디비는 // 기호를 사용한다. (오라클은 @)
5. 마리아디비는 dbname 앞에 / 기호를 사용한다. (오라클은 :)
Thread(Runnable {
var con: Connection? = null
try {
Class.forName("org.mariadb.jdbc.Driver")
DriverManager.setLoginTimeout(1) //접속 제한 시간 설정 : 초 단위
con = DriverManager.getConnection("jdbc:mysql://domain:port/dbname", "id", "password")
try {
val sql: String
sql = "update table set column1=?,column2=? where pk=?"
val prest = oracon!!.prepareStatement(sql)
prest.setString(1,column1)
prest.setString(2,column2)
prest.setString(3,pk)
prest.executeQuery()
prest.close()
con.close()
println("maria ok : "+text)
Toast.makeText(this, "maria ok", Toast.LENGTH_LONG).show() //Thread 안에서 Toast 접근이 안되기 때문에 작동하지 않는다.
}
catch (s: SQLException) {
println("SQL statement is not executed! : "+s.message)
Handler(Looper.getMainLooper()).post {
Toast.makeText(this, "Oracle statement is not executed! : "+s.message, Toast.LENGTH_LONG).show()
val toneGen1 = ToneGenerator(AudioManager.STREAM_MUSIC, 100)
toneGen1.startTone(ToneGenerator.TONE_CDMA_ABBR_ALERT, 300)
}
}
}
catch (e: Exception) {
e.printStackTrace()
println("DB Connection Error! : "+e.message)
Handler(Looper.getMainLooper()).post { //Thread 안에서 Toast 접근하는 방법
Toast.makeText(this, "DB Connection Error! : "+e.message, Toast.LENGTH_LONG).show()
val toneGen1 = ToneGenerator(AudioManager.STREAM_MUSIC, 100) //소리 재생도 Thread 안에서는 Handler를 통해서 해야 한다.
toneGen1.startTone(ToneGenerator.TONE_CDMA_ABBR_ALERT, 300)
}
}
}).start()