Android我的便签-----SQLite的使用方法
在Android开发中也有数据库的存在,最近有空,把以前写的一个便签来讲述一下Android中的数据库,跟大家分享分享的,希望对大家有所帮助。
SQLite简介
SQLite,是一款轻量级的关系型数据库。由于它占用的资源非常少,所以在很多嵌入式设备都是用SQLite来存储数据。
SQLite数据库操作和常用的数据库操作差不多;如:MySQL......; 增删改查等语句操作基本相同; 今天给大家Android SQLite语句相关操作的两种方式
首先来看一下我的便签的效果图:(图中操作顺序:查询,添加,修改,删除)

1:创建数据库和表,创建一个类;如下:
public class HelperSQLite extends SQLiteOpenHelper{
private SQLiteDatabase sqLiteDatabase;
/***
* 创建数据库
* @param context
*/
public HelperSQLite(Context context){
super(context, UtilDB.DATABASE_NAME, null, UtilDB.DATABASE_VERION);
sqLiteDatabase=this.getWritableDatabase();
}
/***
* 创建表
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(UtilDB.showCreateSql());
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//用于更新
}
}
2:介绍添加数据的两种方法
//方式1 SQL语句的方式
String stu_sql="insert into "+UtilDB.DATABASE_TABLE+"("+UtilDB.USER_CONTENT+","+UtilDB.USER_YEAR+","+UtilDB.USER_TIME+") values('"+userContent+"','"+userYear+"','"+userTime+"')";
sqLiteDatabase.execSQL(stu_sql); //方式2
ContentValues contentValues=new ContentValues();
contentValues.put(UtilDB.USER_CONTENT,userContent);
contentValues.put(UtilDB.USER_YEAR,userYear);
contentValues.put(UtilDB.USER_TIME,userTime);
return sqLiteDatabase.insert(UtilDB.DATABASE_TABLE,null,contentValues)>0;//成功返回true
3:删除的两种方式
String sql = "delete from "+UtilDB.DATABASE_TABLE+" where "+UtilDB.USER_ID+" = "+id;
sqLiteDatabase.execSQL(sql); String sql=UtilDB.USER_ID+"=?";
String[] contentValuesArray=new String[]{String.valueOf(id)};
return sqLiteDatabase.delete(UtilDB.DATABASE_TABLE,sql,contentValuesArray)>0;//成功返回true
4:修改的两种方式
//方式1
String sql = "update "+UtilDB.DATABASE_TABLE+" set "+UtilDB.USER_CONTENT+" = '"+content+"',"
+UtilDB.USER_YEAR+" = '"+userYear+"',"+UtilDB.USER_TIME+"='"+userTime+"' where "+UtilDB.USER_ID+" = "+id;
sqLiteDatabase.execSQL(sql); //方式2
ContentValues contentValues=new ContentValues();
contentValues.put(UtilDB.USER_CONTENT,content);
contentValues.put(UtilDB.USER_YEAR,userYear);
contentValues.put(UtilDB.USER_TIME,userTime);
String sql=UtilDB.USER_ID+"=?";
String[] strings=new String[]{id};
return sqLiteDatabase.update(UtilDB.DATABASE_TABLE,contentValues,sql,strings)>0; //成功返回true
5:查询数据 便签中 使用的是降序排列的
Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");//条件查询降序排序
得到数据:
方式1:
List<UserInfo> list=new ArrayList<UserInfo>();
Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");
if (cursor!=null){
while (cursor.moveToNext()){
UserInfo userInfo=new UserInfo();
userInfo.setId(String.valueOf(cursor.getInt(cursor.getColumnIndex(UtilDB.USER_ID))));
userInfo.setUserContent(cursor.getString(cursor.getColumnIndex(UtilDB.USER_CONTENT)));
userInfo.setUserYear(cursor.getString(cursor.getColumnIndex(UtilDB.USER_YEAR)));
userInfo.setUserTime(cursor.getString(cursor.getColumnIndex(UtilDB.USER_TIME)));
list.add(userInfo);
}
}
方式2:通过游标得到数据
List<UserInfo> list=new ArrayList<UserInfo>();
Cursor cursor=sqLiteDatabase.query(UtilDB.DATABASE_TABLE,null,null,null,null,null,UtilDB.USER_ID+" desc");
if (cursor!=null){
while (cursor.moveToNext()){//通过游标得到数据
UserInfo userInfo=new UserInfo();
userInfo.setId(String.valueOf(cursor.getInt()));
userInfo.setUserContent(cursor.getString());
userInfo.setUserYear(cursor.getString());
userInfo.setUserTime(cursor.getString());
list.add(userInfo);
}
}
由于代码太多,就不一一贴出来了,直接下载即可, 源码点击下载
不足之处请留言指正!有问题的可以给我留言!谢谢!
Android我的便签-----SQLite的使用方法的更多相关文章
- jQuery实现tag便签去重效果的方法
本文实例讲述了jQuery实现tag便签去重效果的方法.分享给大家供大家参考.具体实现方法如下: html代码如下: <head><script type="text/ja ...
- Android再学习-便签开发小结-20141119
这几天的便签开发,首先遇到的问题就是数据库操作问题.现在已经可以读写数据库了,并能将数据放在正确的位置显示. 专门建立了一个数据库操作的包,命名为"...database".新建一 ...
- Android学习---如何创建数据库,SQLite(onCreate,onUpgrade方法)和SQLiteStudio的使用
一.android中使用什么数据库? SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程式庫中.它是D.RichardHipp建立的公有领域项目.SQLite 是一个软件库,实现 ...
- Android自动化测试 - MonkeyRunner(二) 锤子便签测试脚本
来源于:http://testerhome.com/topics/878 # encoding=utf-8 #导入python中自带的time模块和sys模块,脚本中都要用到它们. import ti ...
- android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)
如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http:// ...
- Android一个小巧的记录app(便签或者日记 随心)
入驻博客园两个月今天第一次发随笔,,话不多说,直接上图展示效果 主界面用的RecyclerView的瀑布流(StaggeredGridLayoutManager),同时加上Floatbutton悬浮按 ...
- android记帐本、涂鸦、仿腾讯新闻、仿bilibili、Markdwon便签、资讯APP等源码
Android精选源码 kotlin版仿哔哩哔哩动画Android客户端源码 android实现图片涂鸦效果源码 Android 开源记账本项目源码 android高仿腾讯新闻app源码 androi ...
- 锤子便签的 monkeyrunner 测试脚本(转)
https://testerhome.com/topics/878 MonkeyRunner可能大家已经听过无数次了,大家在网上也看过了各种关于的它的资料了,我这里就不再过多的啰嗦它的用途了,它可以对 ...
- 魅族便签,是否能成为国内便签应用的No.1?
继前不久锤子科技推出便签 Android 新版后,近期魅族在PRO 6公布会上也公布了最新的魅族便签应用.这一次魅族把便签应用拓展到了整个Android体系,也就是说.其它不论什么的Android手机 ...
随机推荐
- js如何打印对象
js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一 ...
- HDU1520:Anniversary party(树形dp第一发)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1520 一个公司去参加宴会,要求去的人不能有直接领导关系,给出每一个人的欢乐值,和L K代表K是L的直接领导 ...
- UVA10026:Shoemaker's Problem(贪心)
题目链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=68990#problem/K 题目需求:鞋匠有n个任务,第i个任务要花费ti ...
- JavaScript和jQuery的学习
还有12天就要回学校了,我的假期计划还能实现吗?在这12天里,需要把JavaScript和jQuery学完.我知道这两个技术对于前端网页开发非常重要.前期把HTML和CSS学完了,学的不是特别深,只是 ...
- 记录:python读取excel文件
由于最近老是用到python读取excel文件,所以特意记录一下python读取excel文件的大体框架. 库:xlrd(读),直接pip安装即可.想要写excel文件的话,安装xlwd库即可,也是直 ...
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连
在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连 sql server服务器sqlserver远程连接数据库防火墙在建立 ...
- 002-jdk10安装
下载地址: 1.百度云下载地址.(当然也可以官网下载,都一样) 地址:https://pan.baidu.com/s/13oZh_5tXb_Xadg9f-y2Idw 密码:a9h8 安装jdk: 2. ...
- vuex是什么?怎么用,例子
什么是vuex? 官方的解释是:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 为什么要用 ...
- 卷积网络训练太慢?Yann LeCun:已解决CIFAR-10,目标 ImageNet
原文连接:http://blog.kaggle.com/2014/12/22/convolutional-nets-and-cifar-10-an-interview-with-yan-lecun/ ...
- 【转】深入浅出UML类图
转自:http://www.cppblog.com/API/archive/2013/07/04/201506.html 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin ...