Android SQLite 数据库简单使用

1.基本Sql语句

创建表

        createtable person(

               idinteger primary key autoincrement,      

               namevarchar(20),

               ageinteger

        );

       insert into person(name,age) values('lisi', 23);

       delete from person where name = 'lisi';

       update person set age =30 where name = 'zhangsan';

       select * from person;

       select age from person where name = 'zhangsan';

添加列

       alter table person addcolumn balance integer;

2.管理SQLite数据库

创建一个SQLiteOpenHelper的子类

public class MarkDBOpenHelper extends SQLiteOpenHelper {

	public MarkDBOpenHelper(Context context, String name,
			CursorFactory factory, int version) {
		super(context, name, factory, version);

	}

	public MarkDBOpenHelper(Context context) {
		super(context, "mark.db", null, 1);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table mark (_id integer primary key autoincrement,cardkey varchar(20))");
	}

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

	}

}

onCreate()方法在数据库创建时执行;在此方法中,可以添加创建表的代码

onUpdate()方法在数据库升级时执行;在此方法中,可以添加修改表结构等代码

onOpen()方法在数据库每次打开时执行;


3.操作数据库

操作数据库,可以用原生的sql语句操作;

开发中常用 第二种操作方式,即SQLiteDatabase自带的增删改查方法

例如:

public class MarkDao {
	MarkDBOpenHelper helper;

	public MarkDao(Context context) {
		helper = new MarkDBOpenHelper(context);
	}

    /**
     * 增加一条数据
     * @param cardkey
     * @return
     */
	public boolean add(String cardkey) {
		SQLiteDatabase db = helper.getWritableDatabase();
		ContentValues values = new ContentValues();
		values.put("cardkey", cardkey);
		long result = db.insert("mark", null, values);
		db.close();
		if (result == -1) {
			return false;
		}
		return true;
	}

    /**
     * 删除一条数据
     * @param cardkey
     * @return
     */
	public boolean delete(String cardkey) {
		SQLiteDatabase db = helper.getWritableDatabase();
		int result = db.delete("mark", "cardkey=?", new String[] { cardkey });
		db.close();
		if (result == 0) {
			return false;
		}
		return true;
	}

    /**
     * 查询一条数据
     * @param cardkey
     * @return
     */
	public boolean find(String cardkey) {
		SQLiteDatabase db = helper.getWritableDatabase();
		Cursor cursor = db.query("mark", null, "cardkey=?",
				new String[] { cardkey }, null, null, null);
		while (cursor.moveToNext()) {
			return true;
		}
		cursor.close();
		db.close();
		return false;
	}

}


4.使用事务操作数据库


使用方法:

beginTransaction(): 开启一个事务

setTransactionSuccessful():设置成功点

endTransaction(): 结束事务,包括提交和回滚


!!!事务可以提高效率

插入一万条数据到数据库,使用事务,比不使用事务,效率高6倍多。(做过实验)


5.如何查看SQLite数据库

Android提供了一个sqlite3.exe,位于sdk的tools目录下,用于操作SQLite数据库,其常用命令为:

sqlite3 数据库名称 : 进入数据库操作模式   eg: sqlite3 contacts.db

.tables : 查看所有的表                  eg: .table

.schema : 查看查看库中所有表的DDL语句  eg: .schema

.help : 查看帮助                      eg:.help

.headers on/off  :显示表头,默认off    eg:headers on

.mode list|column|insert|line|tabs|tcl|csv :改变输出格式

eg:.mode column

.nullValue : NULL空值数据显示问题      eg: .nullValue NULL

.dump表名 : 生成形成表的SQL脚本     eq: .dump person

.dump : 生成整个数据库的SQL脚本        eq: .dump

.exit : 退出sqlite操作模式         eq: .exit

 

操作步骤:

1.  在命令行界面使用adbshell命令进入linux内核

2.  使用cd命令进入数据库所在目录(数据库的路径为”/data/data/应用包名/databases/数据库”)

3.  使用”sqlite3数据库名”进入数据库操作模式

直接使用各种命令操作数据库


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值