How to insert image and retrieve in sqlite database Android Studio.



How to insert image and retrieve in sqlite database Android Studio.

How to insert image and retrieve in sqlite database Android Studio.

How to insert image and retrieve in sqlite database Android Studio.
Source Code
class MainActivity : AppCompatActivity() {
var desFile: File? = null
var myFile: File? = null
var db: SQLiteDatabase? = null
protected lateinit var xx: ByteArray
private val stream = ByteArrayOutputStream()
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
createDatabase()
}

fun createDb(view: View) {
createDatabase()
}
fun createDatabase(){
val folder = File(getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).toString()+”/Database”)
if (!folder.exists()) {
folder.mkdir()
} else {
//Toast.makeText(this, folder.absolutePath.toString(), Toast.LENGTH_LONG).show()
}
myFile = File(folder,”Test.db”)
db = SQLiteDatabase.openOrCreateDatabase(myFile!!.absolutePath,null,null)
CreateTable()
@SuppressLint(“Recycle”)
var cursor =
db!!.rawQuery(“SELECT name FROM sqlite_master WHERE type=’table’ “, null)
if (cursor.getCount() != 0)
{
Toast.makeText(this,”Conncted To DataBase)”, Toast.LENGTH_LONG).show()

}
}

fun CreateTable(){
var create_table : String
create_table =
“CREATE TABLE IF NOT EXISTS item (itmid INTEGER PRIMARY KEY AUTOINCREMENT, classid INTEGER, itmname TEXT,” +
“rate REAL,itmunit TEXT, itmimg BLOB) ”
db!!.execSQL(create_table)
create_table =
“CREATE TABLE IF NOT EXISTS category (catid INTEGER PRIMARY KEY AUTOINCREMENT, catname TEXT, classid INTEGER)”
db!!.execSQL(create_table)
create_table =
“CREATE TABLE IF NOT EXISTS ledgers (ldid INTEGER PRIMARY KEY AUTOINCREMENT, classid INTEGER, ldname TEXT, ldaddrs TEXT, ldstate TEXT,” +
” mobileno TEXT opbl REAL)”
db!!.execSQL(create_table)

}
fun InsertData(view: View){
val image = xx
var itmName : String = binding.txtItmname.text.toString()
var itmRate : Double = binding.txtRate.text.toString().toDouble()
var itmUnit : String = binding.txtUnit.text.toString()
val values = ContentValues()
values.put(“itmname”,itmName)
values.put(“rate”, itmRate)
values.put(“itmunit”, itmUnit)
values.put(“itmimg”, image)
db!!.insert(“item”,null,values)
binding.txtItmname.setText(“”)
Toast.makeText(this, “Data Inserted”, Toast.LENGTH_SHORT).show()

}

fun UpdateData(view: View){
val itemid = binding.edtid.text.toString().toInt()
val image = xx
var itmName : String = binding.txtItmname.text.toString()
var itmRate : Double = binding.txtRate.text.toString().toDouble()
var itmUnit : String = binding.txtUnit.text.toString()
val values = ContentValues()
values.put(“itmname”,itmName)
values.put(“rate”, itmRate)
values.put(“itmunit”, itmUnit)
values.put(“itmimg”, image)
values.put(“itmid”,itemid)
db!!.update(“item”, values, “itmid”, null)
binding.txtItmname.setText(“”)
Toast.makeText(this, “Data Updated”, Toast.LENGTH_SHORT).show()

}
fun DeleteData(view: View){
val sqlcmd =
“DELETE FROM ITEM WHERE (itmid = 2 )”
db!!.execSQL(sqlcmd)
binding.txtItmname.setText(“”)
Toast.makeText(this, “Data Deleted”, Toast.LENGTH_SHORT).show()

}

fun showData(view: View) {
val itmid = binding.edtid.text.toString().toInt()
val cursor = db!!.rawQuery(
“SELECT itmid, itmname, rate, itmunit,itmimg FROM item WHERE (itmid = $itmid )”,
null
)
if (cursor.count != 0) {
cursor.moveToFirst()
binding.txtItmname .setText(cursor.getString(1).toString())
binding.txtRate .setText(cursor.getString(2).toString())
binding.txtUnit .setText(cursor.getString(3).toString())
if(cursor.getBlob((4)) != null){
val x = cursor.getBlob(4)
xx = x
val bmp = BitmapFactory.decodeByteArray(x,0,x.size)
binding.pic.setImageBitmap(bmp)
}

}

}

fun insertImg(view: View?) {
var myfileintent = Intent(Intent.ACTION_GET_CONTENT)
myfileintent.setType(“image/*”)
ActivityResultLauncher.launch(myfileintent)
}

}