android sqlite time,Android中SQLite数据库使用

一、数据库软件的使用

1、创建数据库【直接点击添加数据库就可以创建】

在Database File中填写你要创建的数据库名字,如果你不指定路径的话,他会默认在C:\Users\Administrator\Documents\目录下创建数据库文件,当然建议你自定义一个路径,这样方便自己管理。

c31e44359a38e6e7590d41ad5bed9e63.png

2、创建表

create table Notice(noticeId integer primary key autoincrement,noticeTitle varchar(50))

这里我们创建了一个Notice的数据库,其中有两个字段,一个是 noticeId,他是自增长的主键,另一个字段是noticeTitle,创建完之后就可以看到已经有一个表了:

7e87b6829e62567eac91d2df6ea1b86b.png

3、插入数据

insert into Notice(noticeTitle) values("通知")

插入的时候,制定了向哪个表的哪个字段中插入什么数据,这里表示向Notice表的noticeTitle字段中插入了"通知"这个值

4、查询

select * from Notice where noticeId>=2 and noticeId<5

这里我们将Notice表中所有的字段都查出来了,但是加了一个限制,我们查的是noticeId大于等于2并且小于5的数据。

26c915f0f78830501bcefde0d94fcffe.png

5、删除表

很简单的一句话就可以了,drop table Notice

这里只是很简单的介绍了一下如果使用Sqlite可视化编辑器,以后有机会还会详细介绍数据库方面的知识。二、在Android中使用数据库

一般我们在Android代码中使用数据库时,我们一般会创建一个工具类,这个工具类继承自SQLiteOpenHelper,继承这个类必须要实现两个方法,一个是onCreate(创建数据库的时候会调用该方法)方法,一个是onUpgrade(数据库版本有更新的话会调用该数据库)方法

@Overridepublic voidonCreate(SQLiteDatabase db) {

String sql = "CREATE TABLE "+ TABLE_NAME+ " ("+ NOTICE_ID+ " INTEGER primary key autoincrement, "+ NOTICE_TITLE+ " text, "+ NOTICE_MSG+" text, "+ NOTICE_TIME+ " text);";

db.execSQL(sql);

}

在该回调方法中我们创建了一个表格 名字叫做 TABLE_NAME,其中包含三个字段,其中NOTICE_ID是一个主键,他是整形类型,并且是自增长的;另外三个是 NOTICE_TITLE,NOTICE_MSG和NOTICE_TIME,他们是text类型的。

@Overridepublic voidonUpgrade(SQLiteDatabase db, intoldVersion, intnewVersion) {

String sql = " DROP TABLE IF EXISTS "+ TABLE_NAME;

db.execSQL(sql);

onCreate(db);

}

该回调方法主要是用于数据库版本升级的,数据库版本升级时,回先将就得数据库表删除(如果存在的话),然后再调用onCreate方法,创建新的数据库表。

然后就是对数据库一系列的增删改查了:

插入数据:

/*** 插入数据*@paramnoticeTitle*@paramnoticeMsg*@paramnoticeTime*@return*/public longinsert(String noticeTitle,String noticeMsg,String noticeTime){

SQLiteDatabase db = this.getWritableDatabase();

ContentValues cv = newContentValues();

cv.put(NOTICE_TITLE,noticeTitle);

cv.put(NOTICE_MSG,noticeMsg);

cv.put(NOTICE_TIME,noticeTime);

longrow = db.insert(TABLE_NAME,null,cv);

returnrow;

}

查询数据:

查询所有的

/*** 查询操作*@return*/publicCursor select(){

SQLiteDatabase db = this.getWritableDatabase();

Cursor cursor = db.query(TABLE_NAME,null,null,null,null,null,null);

returncursor;

}

条件查询(查询NOTICEID大于startNum小于endNum的所有数据)

/*** 条件查询*@paramstartNum*@paramendNum*@return*/publicCursor select(String startNum,String endNum){

SQLiteDatabase db = this.getWritableDatabase();

Cursor cursor = db.query(TABLE_NAME,newString[]{NOTICE_TITLE,NOTICE_MSG,NOTICE_TIME},"noticeId >= ? and noticeId < ?",

newString[]{startNum,endNum},null,null,NOTICE_ID+ " DESC");

returncursor;

}

在条件查询中,我们可以进去方法里面看query所要传的参数

publicCursor query(String table, String[] columns, String selection,

String[] selectionArgs, String groupBy, String having,

String orderBy) {

returnquery(false, table, columns, selection, selectionArgs, groupBy,

having, orderBy, null/* limit */);

}

第一个table:表名

第二个columns:所要查询的列名,如果为null,则表示查询所有的字段

第三个selection:要查询的条件,这里要注意以下语法,比如我们经常的条件查询要用where,但是在这里你用where他就会报错了,相关的语法你可以去百度找一下,提供一个地址:http://www.runoob.com/sqlite/sqlite-syntax.html。

第四个selectionArgs:条件参数

第五个groupBy:分组方式即根据什么方式来进行分组

第六个having:类似于where的作用,但是它只用于goup by(统计分组中)

第七个orderBy:排序方法

注意:在查询的时候,有很多人回踩一个坑。平常我们使用sql语句的时候,比如条件查询 我们一般在sql语句前面加一个"where",order by语句的时候,在查询语句前面加一个"order by",但是在Android中的query方法中就不必要加一些这个东西了,应为他已经规定了哪一个参数是where,哪一个参数是having,哪一个参数是orderby,所以我们就不必多此一举了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值