安卓sqlite的使用
安卓内置轻量级数据库sqlite的简单使用
使用安卓专门提供的帮助类SQLiteOpenHelper
新建MyDatabaseHelper继承SQLiteOpenHelper
public class MyDatabaseHelper extends SQLiteOpenHelper {private Context mConText;//这里是我们2需要创建的数据库表//User是表名//public static final String CREATE_USER = "create table User ("//设置一个自增序列ID,作为每个数据唯一的标识(相当于人的身份证号)+ "id integer primary key autoincrement, "+ "username text, "+ "password text)";public MyDatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version);mConText = context;}@Overridepublic void onCreate(SQLiteDatabase db) {//每添加一张表都要在这里添加一条语句db.execSQL(CREATE_USER);Toast.makeText(mConText, "Create Succeeded", Toast.LENGTH_SHORT).show();}@Overridepublic void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {}
}
public class AddActivity extends AppCompatActivity{private MyDatabaseHelper dbhelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_add);//通过构造函数将参数将数据库名指定为UserList.db,版本为1dbhelper = new MyDatabaseHelper(this,"UserList.db",null,1);//进入活动运行到这一步后检测到没有数据库就会创建SQLiteDatabase db = dbhelper.getWritableDatabase();}
新建一个表后,我们希望更新数据库
public class MyDatabaseHelper extends SQLiteOpenHelper {private Context mConText;public static final String CREATE_USER = "create table User ("+ "id integer primary key autoincrement, "+ "username text, "+ "password text)";public static final String CREATE_FuelItem = "create table Content ("+ "id integer primary key autoincrement, "+ "username text, "+ "time text, "+ "unitprice text, "+ "mileline text, "+ "price text)";public MyDatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version);mConText = context;}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(CREATE_USER);//添加一个表然后更新数据库db.execSQL(CREATE_FuelItem);onCreate(db);}@Overridepublic void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {}
}
在主活动中修改版本号
dbhelper = new MyDatabaseHelper(this,"UserList.db",null,2);
添加数据
SQLiteDatabase db = dbhelper.getWritableDatabase();ContentValues values = new ContentValues();//put(属性名,属性值) put("username","小明");values.put("username",username);values.put("time",time1);values.put("unitprice",unitprice1);values.put("mileline",mileline1);values.put("price",price1);db.insert("Content",null,values); //将数据插入数据库values.clear();db.close();
更新数据
SQLiteDatabase db = dbhelper.getWritableDatabase();ContentValues values = new ContentValues();//put(属性名,为该属性重新赋的值)values.put("time",time1);values.put("unitprice",unitprice1);values.put("mileline",mileline1);values.put("price",price1);//String.valueOf(fuelItem.getID())更新的是ID为fuelItem.getID()的数据,这里改成自己需要更新的某个对象的属性及对应的值就行db.update("Content",values,"ID = ?",new String[{String.valueOf(fuelItem.getID())});
删除数据
SQLiteDatabase db = dbHelper.getWritableDatabase();
//删除的是Content表中 ID=String.valueOf(id)的条目,id是我们自己获取的 “=”可以改成“>”,“<”进行筛选删除db.delete("Content", "ID = ?" ,new String[]{String.valueOf(id)});db.close();
查询操作
SQLiteDatabase db = dbHelper.getWritableDatabase();/*Cursor是相当于一个游标,便利表中没个条目,然后获取不同属性,找到与自己查找相符合的属性就将此条提取出来*/Cursor cursor = db.query("Content",null,null,null,null,null,null);if(cursor.moveToFirst()) {do {Integer ID = Integer.valueOf(cursor.getString(cursor.getColumnIndex("id")));String name = cursor.getString(cursor.getColumnIndex("username"));String time = cursor.getString(cursor.getColumnIndex("time"));double unitprice = cursor.getDouble(cursor.getColumnIndex("unitprice"));double mileline = cursor.getDouble(cursor.getColumnIndex("mileline"));double price = cursor.getDouble(cursor.getColumnIndex("price"));if(name.equals(username)){FuelItem fuelItem = new FuelItem();fuelItem.setID(ID);fuelItem.setMileline(mileline);fuelItem.setPrice(price);fuelItem.setUsername(name);fuelItem.setTime(time);fuelItem.setUnitprice(unitprice);itemList.add(fuelItem);}} while (cursor.moveToNext());}cursor.close();db.close();
安卓sqlite的使用相关推荐
- android安卓Sqlite数据库实现用户登录注册
看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下! 建立一个类 并继承SQLiteOpenHelper public ...
- 利用安卓SQLite修改QQ运动步数方法分享 简单粗暴
这个方法简单粗暴,比昨天的安卓用户秒刷QQ运动步数教程+软件下载更简单.亲测百分百成功,根据教程图片的步骤找到文件进行编辑保存即可. 1.自行百度搜索"安卓SQLite汉化版"下载 ...
- 安卓SQLite和SQLiteDataBase的应用
安卓实验安卓SQLite和SQLiteDataBase的应用 1. 先将数据写入两个news对象中,方便一会插入数据库,这里定义了一个SetNews类,里面静态方法是插入两条数据到news对象中并返回 ...
- Android Studio 安卓sqlite数据库查询
注意 查询安卓sqlite数据库时,确定已经创建了数据库,并且配置了adb命令系统环境,同时查询设备需要root权限,这里我用安卓虚拟机APls(自动开放权限)作为演示 步骤 打开虚拟机,输入adb ...
- 在eclipse安卓sqlite怎么用_把安卓手机性能发挥到极致之-Aid Learning
一直以来,由于工作条件限制,单位只能使用XP!!!什么64位操作系统,什么新Python,什么64位Java,统统与我无缘!!! 魂牵梦绕,寻求替代方案,什么Intel NUC,什么树莓派,什么淘宝小 ...
- 通过SQLiteStudio实时查询修改安卓SQLite数据库
序 之前提到了SQLiteStudio 软件长?这样 一个可视化的SQLite数据库管理工具 官网地址:https://sqlitestudio.pl/index.rvt 之前一直是这么使用它的 先访 ...
- 英语单词SQL数据库一千词带音标例句发音【安卓SQLite网页MySQL皆可用】
[一千英语单词加翻译音标例句发音sql文件db文件] 蛋疼,上传完文件发现默认就是5C币一次,居然不是免费的,这里直接放出sql文件好了.供大家免费复制. 包含了一千多个英语单词的sql文件.移动安卓 ...
- 安卓 sqlite数据存入mysql_详解Android数据存储—使用SQLite数据库
SQLite是Android自带的关系型数据库,是一个基于文件的轻量级数据库.Android提供了3种操作数据的方式,SharedPreference(共享首选项).文件存储以及SQLite数据库. ...
- 安卓 sqlite数据存入mysql_在Android上简单导出和导入SQLite数据库
这是一种将数据库导出到名为备份文件夹的文件夹的简单方法,您可以根据需要对其进行命名,以及从同一文件夹导入数据库的简单方法public class ExportImportDB extends Acti ...
- 安卓 SQLite error:SQLite database locked exception while compling : PRAGMA journal_mode .....
项目中频繁的切换Tab键,会频繁地从数据库读取数据,这是报出这样的错误: 解决方法是在国外的某论坛找到的 : 在插入数据的时候,首先: SQLiteDatabase db = SQLiteDataba ...
最新文章
- POJ_2104 K-th Number 【主席树】
- nginx怎么用_后端服务老是重启,前端该如何拯救自己?nginx的妙用
- js(Dom+Bom)第五天(2)
- leetcode 977. 有序数组的平方(双指针)
- 《软件项目管理(第二版)》第 9 章——项目监督与控制 重点部分总结
- 2018网易未来科技峰会召开,科技新浪潮改变商业
- Python C API 使用详解(二)
- PhpStorm之三种视图模式
- C++读取excel表格
- GitHub上整理的一些工具
- github 本地提交代码到服务器
- 磁珠 符号_超实用理解磁珠
- ECMAScript 变量
- 计算机英语趣味知识,看段子,学英语,懂点计算机知识才能看懂哦!
- 软件架构模式 mark Richards - 读后总结 2 事件驱动架构
- 鸿蒙系统学习系列 | 上手HarmonyOS十大必看指南!
- java 合并到一行_GROUP_CONCAT() 多行数据合并成一行
- Prometheus
- 异常检测之普通高斯算法和多元高斯算法学习总结
- 【自动驾驶模拟器AirSim快速入门 | 01】自动驾驶模拟器AirSim实战演练
热门文章
- JAVA基础之单例模式
- 少儿编程启蒙课程9:善用变量 拥抱变化
- 《疯狂java讲义》学习(19):枚举类
- 小电科技CTO“肉山”芦宇峰:互联网过35岁就遭裁员?如何应对职业危机
- 邮件传输的过程都看不懂。那我走(狗头)
- 用低维向高维“穿梭”的想法来理解高维空间
- 29岁华为员工工资曝光,揭露残酷真相:职场下半场,拼的就是这项能力!
- 聊一聊如何把SSL证书安装到小鸟云服务器上
- 如何将硬盘分区合并不丢失数据,合并两个硬盘分区不删除数据
- matlab初值的非线性最小二乘,Matlab与Mathematica在非线性拟合中的应用比较