android中使用SqLite数据库(一文包懂包会)
本文以eclipse中的操作为例。
一、控制台操作SQLite数据库
eclipse中查看数据库
DDMS->File Explorer->data->data->com.example.项目名->databases
控制台新建数据库
一开始是看不到databases这个文件夹的,这个需要自己创建,创建步骤如下:
1、win+R打开CMD控制台
2、在sdk的platform-tools中启动adb shell并进入直接的项目文件目录下(注意:要先启动虚拟机)
3、新键文件夹databases
mkdir databases
4、进入文件夹
cd databases
5、新建数据库users.db
sqlite3 users.db
6、新建表
create table user("name" TEXT,"score" INTEGER);
7、插入数据
insert into user(name,score) values ("SADON_jung",100);
8、查看数据
select * from user;
9、删除数据
delete from user where score = 100;
10、更新数据
update user set score = 99 where name = "SADON_jung";
二、eclipse中操作数据库
1、获取SQLiteDatabases
// 获取SQLiteDatabase以操作SQL语句 //getFilesDir()获取当前目录路径 DB = SQLiteDatabase.openOrCreateDatabase(getFilesDir() + "/users.db",null);
做到这一步你会发现,连接到的数据库并不是上面自己在控制台中新建的数据库,而是创建在了一个新的文件夹files中,但是这个影响不大,以后注意就可以了。
2、建表
public void create() { String createSql = "create table user('name' TEXT,'score' INTEGER)"; DB.execSQL(createSql); }
3、插入数据
public void insert(String user,int score) { String insertSql = "insert into user (name,score) values (\'"+ user +"\'," + score +")"; DB.execSQL(insertSql); }
4、删除数据
public void delete(String name,int score){ String deleteSql = "delete from user where name = \'"+name+"\'AND score = "+score; DB.execSQL(deleteSql); }
5、更新数据
public void updata(String user,int score) { String updataSql = "update user set score = " + score +" where user =\'"+ user +"\')"; DB.execSQL(updataSql); }
6、查找语句
//查找数据可以使用Cursor类来存放查找到的数据 public Cursor select() { String selectSql = "select * from user"; Cursor cursor = DB.rawQuery(selectSql, null);// 我们需要查处所有项故不需要查询条件 return cursor; }
三、Cursor类的使用
cursor.isClosed();//如果为TRUE表示该游标已关闭 cursor.close();//关闭游标,且释放资源 cursor.getColumnCount();//返回所有列的总数 cursor.getColumnNames();//返回一个字符串数组的列名,即将列名全部返回到一个字符串数组中 cursor.getCount();//返回Cursor中的行数 cursor.moveToFirst();//移动光标到第一行 cursor.moveToLast();//移动光标到最后一行 cursor.moveToNext();//移动光标到下一行 cursor.moveToPrevious();//移动光标到上一行 cursor.getColumnName(columnIndex);//从给定的索引返回列名 cursor.moveToPosition(position);//移动光标到给定位置 cursor.getString(0);//获取当前行的第一列String类型数据 cursor.getInt(1);//获取当前行的第二列int类型数据
实操中的一点笔记,希望可以帮到大家,有错误的地方希望可以指出,谢谢。