android存储---sqlite浅谈

第一次搞这个。感觉未来在我眼前啊。。。以前易某某让我搞这个,现在感觉易某某说得对啊,好好搞起。---第一次,处啊。。有什么值得讨论的地方求兄弟们不要藏着,有什么不足求指点啊。。本包子很谦虚的。

最近刚学的android。基友们应该懂得。。求交友!求进步!

自我认识:sqlite是一个小型的关系型数据库,很精致,很有用。

先看代码吧:

/**
 * SqlitePrc.java
 * author : xxx
 * Create on 2013-7-30 下午3:14:45
 * @param
 *
 */
package com.example.sqliteprc;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;


public class SqlitePrc1 extends SQLiteOpenHelper
{
  private final static String DATABASE_NAME="dailyBG_db";  //数据库名字
  private final static int DATABASE_VERSION=1;   //版本号
  private final static String TABLE_NAME="stu_table";//表名
  public final static String ID="stu_id";//表的字段 id
  public final static String AGE="stu_age"; // 年龄
  public static SQLiteDatabase sdb;  //数据库对象
  public SqlitePrc1(Context context) {//此构造函数必不可少啊。
  super(context,DATABASE_NAME, null, DATABASE_VERSION);
     sdb=this.getWritableDatabase();   //创建数据库并且赋给sdb对象
 }
 @Override
 public void onCreate(SQLiteDatabase db) {    //创建表(ID--年龄,共两个字段)就是个练习。。嘿嘿
  String sql="CREATE TABLE IF NOT EXISTS "+TABLE_NAME+"("+ID+" INEGER primary key, "+AGE+" INTEGER)";
  db.execSQL(sql);
  sdb=db;
  insert(1,258);
 }
 public long insert(int id,int age)   //插入
 {
  ContentValues cv=new ContentValues();//contentvalues相当于map也是键值对。这很好理解了吧。
  cv.put(AGE, age);
  cv.put(ID, id);

/*

*参数:表名,(如果cv为空。则给字段赋值null),键值对,,,官方说明:

*may be null. SQL doesn't allow inserting a completely empty row without naming at least one column name. If your provided values is empty, no column names are *known and an empty row can't be inserted. If not set to null, the nullColumnHack parameter provides the name of nullable column name to explicitly insert a NULL into in *the case where your values is empty

*/
  long row=sdb.insert(TABLE_NAME, null, cv);
  return row;
 }
 public Cursor select()   //查询
 {//查询。。丫的参数太多了
  Cursor cursor=sdb.query(TABLE_NAME, null, null, null, null, null, null);//参数说明1.表名,2列名,3查询条件,4,查询条件的值,5分组group by,6 order by 7limit
  return cursor;
  
 }

public int delete()   //删除
 {

  return   sdb.delete(TABLE_NAME,"id=?" ,new String[]{"11"});//参数说明 1:删除数据所在的表,2.删除数据的字段名和占位符,3删除字段的条件值。就是占位符的值 
 }

public int delete(ContentValues values)   //更新
 {
  return   sdb.update (TABLE_NAME, values, “id=?”, new String[]{"12"})//字段说明1:表明,2要修改的数据,3AND4.要修改的数据也就是条件

  
 }

//当数据库版本升级时候调用此方法
 @Override
 public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
  // TODO Auto-generated method stub
 }
 
}

个人观点:数据库是运行在后台。只是为了提供数据。所以没有必要写在activity里面。。直接在一个类里面写好所有的crud接口就OK了,方便调用。内聚也强大

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值