标签:
查看文档,查看
Android文档查sqliteopenhelper
上下文创建数据库,onCreate创建表,w3c标准,W3cschool:查询sql的语法这些
实际写法
String sql = "create table persons(_id名称 integer类型 primary key主键 autoincrement自动增长,name text)";
db.execSQL("insert into persons(name) values(‘鸡哥‘)");
在activity里面获取实例
然后在layout里面添加按钮,进行操作
插入数据insert
先获取可写的数据库SQLiteDatabase db = helper.getWritableDatabase();
判断数据库是否打开if (db.isOpen())
执行sql语句,然后关闭数据库db.execSQL("insert into persons(name) values(‘小鸡哥‘)"); db.close();
// 查询
publicvoid query(View v) {
SQLiteDatabase db = helper.getReadableDatabase();
if (db.isOpen()) {
// 查询获取游标(ResultSet是一样的只是名字不同)
Cursor cursor = db.rawQuery("select * from persons", null);
// 迭代游标
while (cursor.moveToNext()) {
// 获取数据
// int _id = cursor.getInt(0);
// cursor.getColumnIndex("_id") 获取_id在cursor里面的下标
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(1);
Log.i(TAG, "_id:" + _id + ",name:" + name);
}
cursor.close();// 关闭游标
db.close();
}
}
// 更新
publicvoid update(View v) {
// 获取可写的数据库
SQLiteDatabase db = helper.getWritableDatabase();
// 判断数据库是否打开
if (db.isOpen()) {
// 执行sql
db.execSQL("update persons set name =? where _id = ?",
new Object[] { "小覃", 1 });
// 关闭数据库
db.close();
}
}
// 删除
publicvoid delete(View v) {
// 获取可写的数据库
SQLiteDatabase db = helper.getWritableDatabase();
// 判断数据库是否打开
if (db.isOpen()) {
// 执行sql
db.execSQL("delete from persons where _id = ?", new Object[] { 1 });
// 关闭数据库
db.close();
}
}
总结:
增、删、改
1. 先获取SQLiteOpenHelper数据的帮助类
private SQLiteOpenHelper helper = MySqliteOpenHelper.getIntance(this);
2. 获取数据库的可写权限
SQLiteDatabase db = helper.getWritableDatabase();
3. 判断是否打开数据库
if(db.isOpen())
4.执行sql
db.execSQL("insert into persons(name) values(‘小鸡哥‘)");
4.关闭数据库
db.close();关闭数据库
查询操作
1. 先获取SQLiteOpenHelper数据的帮助类
private SQLiteOpenHelper helper = MySqliteOpenHelper.getIntance(this);
2.获取数据库的可读权限
SQLiteDatabase db =helper.getReadableDatabase();
3.判断是否打开数据库
if(db.isOpen()){
4.查询 获取游标(ResultSet是一样的只是名字不同)
Cursor cursor = db.rawQuery("select * from persons", null);
5.迭代游标
while(cursor.moveToNext()){
//获取数据
// int _id = cursor.getInt(0);
//cursor.getColumnIndex("_id") 获取_id在cursor里面的下标
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(1);
Log.i(TAG, "_id:"+_id+",name:"+name);
}
cursor.close();//关闭游标
db.close();
SQLite可以解析大部分标准SQL语句,如:
查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order by 排序子句
如:select * from person
select * from person order by id desc
select name from person group by name having count(*)>1
分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录
select * from Account limit 5 offset 3 或者 select * from Account limit 3,5
插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person(name, age) values(‘传智’,3)
更新语句:update 表名 set 字段名=值 where 条件子句。如:update person set name=‘传智‘ where _id=10
删除语句:delete from 表名 where 条件子句。如:delete from person where _id=10
字段名就是键的意思,字段列表就是好多键的集合
// 更新
publicvoid update(View v) {
// 获取可写的数据库
SQLiteDatabase db = helper.getWritableDatabase();
// 判断数据库是否打开
if (db.isOpen()) {
// 执行sql
db.execSQL("update persons set name =? where _id = ?",
new Object[] { "小覃", 1 });
// 关闭数据库
db.close();
}
}// 更新
publicvoid update(View v) {
// 获取可写的数据库
SQLiteDatabase db = helper.getWritableDatabase();
// 判断数据库是否打开
if (db.isOpen()) {
// 执行sql
db.execSQL("update persons set name =? where _id = ?",
new Object[] { "小覃", 1 });
// 关闭数据库
db.close();
}
}// 查询
publicvoid query(View v) {
SQLiteDatabase db = helper.getReadableDatabase();
if (db.isOpen()) {
// 查询获取游标(ResultSet是一样的只是名字不同)
Cursor cursor = db.rawQuery("select * from persons", null);
// 迭代游标
while (cursor.moveToNext()) {
// 获取数据
// int _id = cursor.getInt(0);
// cursor.getColumnIndex("_id") 获取_id在cursor里面的下标
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(1);
Log.i(TAG, "_id:" + _id + ",name:" + name);
}
cursor.close();// 关闭游标
db.close();
}
}
标签:
原文地址:http://www.cnblogs.com/xyyz/p/5526560.html