Android 使用Sqlite数据库
2021/7/10 19:08:35
本文主要是介绍Android 使用Sqlite数据库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一.把数据库文件如"citys.db",放到assets目录下,再把这个文件拷贝到数据库对应的目录.代码如下:
if(!getDatabasePath(fileName).exists())//先判断文件是否存在,filename即"citys.db" { try { InputStream inStream = this.getAssets().open(fileName); File file = new File(getDatabasePath(fileName).toString().substring(0, getDatabasePath(fileName).toString().indexOf(fileName))); if(!file.exists()) file.mkdir();//如果目录不存在,则先创建目录 OutputStream outStream = new FileOutputStream(getDatabasePath(fileName).toString()); byte[] buffer = new byte[1024]; int length = 0; while((length = inStream.read(buffer)) > 0) { outStream.write(buffer, 0, length); } outStream.flush(); outStream.close(); inStream.close(); } catch (Exception e) { e.printStackTrace(); } }
二.打开数据库 方法一:
//getDatabasePath(fileName).toString()即/data/data/getPackageName()/databases/fileName //此方法打开的数据库必须要先创建好表android_metadata,否则会报错: sqlite returned: error code = 1, msg = no such table: android_metadata SQLiteDatabase db = SQLiteDatabase.openDatabase(getDatabasePath(fileName).toString(), null, SQLiteDatabase.OPEN_READONLY);
方法二:
//此方法会在没有这个数据库时自动创建 SQLiteDatabase db = this.openOrCreateDatabase(fileName, MODE_PRIVATE, null);
三.创建表
db.execSQL("create table if not exists cities(" + "id INTEGER PRIMARY KEY," + "city_name TEXT," + "longitude INTERGER," + "latitude INTERGER," + "province_name TEXT" + ");"); //如果没有citise这个表就创建这个表
四.查询表
Cursor cursor = db.query("cities", new String[]{"city_name","longitude","latitude"}, "province_name==?", new String[]{"湖南"}, null, null, null);//"cities"为表名 while(cursor.moveToNext()) { String name =cursor.getString(cursor.getColumnIndex("city_name")); System.out.println(name); }
五.插入数据
ContentValues contentValues = new ContentValues(); contentValues.put("id", 1); contentValues.put("city_name", "常德"); contentValues.put("longitude", 113650001); contentValues.put("latitude", 34720001); contentValues.put("province_name", "湖南"); db.insert("cities", null, contentValues);
六.清空数据
db.execSQL("drop table if exists cities;");
七.关闭数据库
cursor.close(); db.close();
这篇关于Android 使用Sqlite数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-18android.permission.read_media_video
- 2024-01-18android_getaddrinfo failed eai_nodata
- 2024-01-18androidmo
- 2024-01-15Android下三种离屏渲染技术
- 2024-01-09Android 蓝牙使用
- 2024-01-06Android对接华为AI - 文本识别
- 2023-11-15代码安全之代码混淆及加固(Android)
- 2023-11-10简述Android语音播报TTS
- 2023-11-06Android WiFi工具类
- 2023-07-22Android开发未来的出路