Android SQLite

Android操作系统使用SQLite数据库,使用有两种方法获得数据库对象:

1.获取已经存在的数据库

SQLiteDatabase dbbrndi=SQLiteDatabase.openDatabase("/sdcard/zhycheng.db3", null,SQLiteDatabase.OPEN_READONLY);


第一个String参数是数据库在文件系统中的位置,第二个参数一般为null,第三个参数控制数据库打开的方式。

这样就获得了数据库对象。

2.自己创建数据库

新建一个类,继承SQLiteOpenHelper,添加未实现的方法

代码如下

package your.zhycheng;

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

public class MyHelper extends SQLiteOpenHelper{

	public MyHelper(Context context, String name)
	{
		this(context,name,1);
	}
	public MyHelper(Context context, String name,int version)
	{
		this(context,name,null,version);
	}
	public MyHelper(Context context, String name,//数据库的名字
			CursorFactory factory,
			int version) {
		super(context, name, factory, version);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table user(id int,name text)");
		
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		
	}

}

获得的数据库位于/data/data/yourpackage/databases/zhycheng.db3
然后通过生成一个MyHelper类的对象,调用

MyHelper mh=new MyHelper(this,"zhycheng");
SQLiteDatabase db=mh.getReadableDatabase();
SQLiteDatabase db=mh.getWritableDatabase();

分别获得只读和可写的数据库。

获得数据库之后就可以进行数据库操作有以下两种方式操作数据库

1.执行SQL语句

db.rawQuery(sql,Args)
db.execSQL(sql, Args)
db.execSQL(sql)

上面的sql是String类型的数据库语言,Args是String数组。前面String中若有"?"则对应后面的值。

2.使用特定的方法

插入方法

 

                   MyHelper mhz=new MyHelper(this,"zhycheng",2);
			SQLiteDatabase dbz=mhz.getWritableDatabase();
			ContentValues value=new ContentValues();
			value.put("id", 1);
			value.put("name", "zhangyicheng");
			dbz.insert("user", null, value);//第二个参数一定是null


删除方法

                   MyHelper mhsc=new MyHelper(this,"zhycheng",2);
			SQLiteDatabase dbsc=mhsc.getWritableDatabase();
			dbsc.delete("user", "id=?", new String[]{"1"});
			dbsc.close();


改方法

                   MyHelper mhg=new MyHelper(this,"zhycheng",2);
			SQLiteDatabase dbg=mhg.getWritableDatabase();
			ContentValues vs=new ContentValues();
			vs.put("id", 1);
			dbg.update("user", vs, //set XXX=xx
					"id=?", new String[]{"4"}//id=4
			);//

查方法

MyHelper mhc=new MyHelper(this,"zhycheng",2);
			SQLiteDatabase dbc=mhc.getReadableDatabase();
		    Cursor c=dbc.query("user",//表名字
					new String[]{"id","name"},//查询的列
					"id=?", new String[]{"2"}, //where
					null, null, null);
			while(c.moveToNext())
			{
				System.out.println(c.getString(c.getColumnIndex("name")));
			}


最后有一个函数很有用

insert into user values(7,datetime(CURRENT_TIMESTAMP,'localtime'))

向数据库插入即刻时间



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值