SQLiteDatabase 基本使用
来源:互联网 发布:苹果笔记本办公软件 编辑:程序博客网 时间:2024/04/29 03:50
SQLiteDatabase使用,手机6.0以上系统要动态注册存储权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
当我们调用SQliteOpenHelper的getReadableDatabase()或getWritableDatabase()的方法可以创建或升级数据库,
这两个方法会返回一个SQLiteDatabase的对象,借助这个对象可以对数据库进行增删改查等操作;
SQLiteDatabase db=MYDatabase(自定义继承的类).getReadableDatabase();//返回db对象
添加数据
SQLiteDatabase中提供一个insert()方法,用于添加数据,
它有三个参数:1要添加的表名,2null,3ContentValuesc的对象
//创建ContentValues对象来组装数据
ContentValues values=new ContentValues();
values.put("bookName","天龙八部");
values.put("author","金庸");
values.put("price",44.5);
//返回long类型的值,可以在日志中打印输出,判断是否添加成功
//保存数据 返回值为插入的新数据的行号 ,如果为-1 则添加失败
long myLong2=db.insert("MyBook",null,values);
//在日志中打印添加后返回的值
Log.d("第二次添加",myLong2+"");
values.clear();
12-14 22:43:35.250 27566-27566/com.example.sqlifedatabasetest D/第一次添加: 17
12-14 22:43:35.253 27566-27566/com.example.sqlifedatabasetest D/第二次添加: 18
还有一种添加数据方法
SQLiteDatabase db=myDatabase.getWritableDatabase();
String sql="insert into MyBook (bookName,author,price) values('第一行代码','郭林',79)";
db.execSQL(sql);
修改数据
update(),用于修改数据
它有四个参数
参数1:要修改的表名
参数2:ContentValues的对象
参数3:相当于SQL语句的where条件部分 //"name=?";?代表点位符
参数4:指定参数3wheret条件部分的具体内容 //既?的具体值
SQLiteDatabase db2=myDatabase.getWritableDatabase();
ContentValues values2=new ContentValues();
values2.put("price",30);
//rows受影响的行数,返回0修改失败
int rows=db2.update("MyBook",values2,"author=?",new String[]{"金庸"});
//打印修改后的返回值
Log.d("修改的行数",rows+"");
values2.clear();
db2.close();
12-14 22:48:19.803 2360-2360/com.example.sqlifedatabasetest D/修改的行数: 3
删除数据
delete() 有三个参数
参数1:要删除的表名
参数2:指定删除条件
参数3:约束参数2的内容
SQLiteDatabase db3=myDatabase.getWritableDatabase();
//value_delete返回的是受影响的行数,返回0删除失败
int value_delete=db3.delete("MyBook","price>?",new String[]{"33"});
Log.d("删除后的返回值",value_delete+"");
12-14 23:14:14.289 7608-7608/com.example.sqlifedatabasetest D/删除后的返回值: 15
查询数据
query()可以查询数据
它有7个参数,
参数1:查询的表名
参数2:查询的列名
参数3:指定where的约束条件
参数4:为wherer的点位符提供具体值
参数5:指定group by的列
参数6:对group by的结果进一步约束
参数7:指定查询结果的排序方式
在实际操作中用不上的参数,往往指定为null;调用query()方法它会返回一个游标Cursor对象,
通过操作cursor,可以将数据从这个对象中取出;
Cursor cursor=db.query("MyTable",null,null,null,null,null,null);
关于sql的指针
c.move(int offset); //以当前位置为参考,移动到指定行
c.moveToFirst(); //移动到第一行
c.moveToLast(); //移动到最后一行
c.moveToPosition(int position); //移动到指定行
c.moveToPrevious(); //移动到前一行
c.moveToNext(); //移动到下一行
c.isFirst(); //是否指向第一条
c.isLast(); //是否指向最后一条
c.isBeforeFirst(); //是否指向第一条之前
c.isAfterLast(); //是否指向最后一条之后
c.isNull(int columnIndex); //指定列是否为空(列基数为0)
c.isClosed(); //游标是否已关闭
c.getCount(); //总数据项数
c.getPosition(); //返回当前游标所指向的行数
c.getColumnIndex(String columnName);//返回某列名对应的列索引值
c.getString(int columnIndex); //返回当前行指定列的值
if(cursor.moveToFisrst()){
while(cursor.moveToNext()){
//通过列名得到下标
int index=cursor.getColumnIndex("列名");
//通过下标得到查询内容
String result=cursor.getString(index);
}
};
cursor.close();
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
当我们调用SQliteOpenHelper的getReadableDatabase()或getWritableDatabase()的方法可以创建或升级数据库,
这两个方法会返回一个SQLiteDatabase的对象,借助这个对象可以对数据库进行增删改查等操作;
SQLiteDatabase db=MYDatabase(自定义继承的类).getReadableDatabase();//返回db对象
添加数据
SQLiteDatabase中提供一个insert()方法,用于添加数据,
它有三个参数:1要添加的表名,2null,3ContentValuesc的对象
//创建ContentValues对象来组装数据
ContentValues values=new ContentValues();
values.put("bookName","天龙八部");
values.put("author","金庸");
values.put("price",44.5);
//返回long类型的值,可以在日志中打印输出,判断是否添加成功
//保存数据 返回值为插入的新数据的行号 ,如果为-1 则添加失败
long myLong2=db.insert("MyBook",null,values);
//在日志中打印添加后返回的值
Log.d("第二次添加",myLong2+"");
values.clear();
12-14 22:43:35.250 27566-27566/com.example.sqlifedatabasetest D/第一次添加: 17
12-14 22:43:35.253 27566-27566/com.example.sqlifedatabasetest D/第二次添加: 18
还有一种添加数据方法
SQLiteDatabase db=myDatabase.getWritableDatabase();
String sql="insert into MyBook (bookName,author,price) values('第一行代码','郭林',79)";
db.execSQL(sql);
修改数据
update(),用于修改数据
它有四个参数
参数1:要修改的表名
参数2:ContentValues的对象
参数3:相当于SQL语句的where条件部分 //"name=?";?代表点位符
参数4:指定参数3wheret条件部分的具体内容 //既?的具体值
SQLiteDatabase db2=myDatabase.getWritableDatabase();
ContentValues values2=new ContentValues();
values2.put("price",30);
//rows受影响的行数,返回0修改失败
int rows=db2.update("MyBook",values2,"author=?",new String[]{"金庸"});
//打印修改后的返回值
Log.d("修改的行数",rows+"");
values2.clear();
db2.close();
12-14 22:48:19.803 2360-2360/com.example.sqlifedatabasetest D/修改的行数: 3
删除数据
delete() 有三个参数
参数1:要删除的表名
参数2:指定删除条件
参数3:约束参数2的内容
SQLiteDatabase db3=myDatabase.getWritableDatabase();
//value_delete返回的是受影响的行数,返回0删除失败
int value_delete=db3.delete("MyBook","price>?",new String[]{"33"});
Log.d("删除后的返回值",value_delete+"");
12-14 23:14:14.289 7608-7608/com.example.sqlifedatabasetest D/删除后的返回值: 15
查询数据
query()可以查询数据
它有7个参数,
参数1:查询的表名
参数2:查询的列名
参数3:指定where的约束条件
参数4:为wherer的点位符提供具体值
参数5:指定group by的列
参数6:对group by的结果进一步约束
参数7:指定查询结果的排序方式
在实际操作中用不上的参数,往往指定为null;调用query()方法它会返回一个游标Cursor对象,
通过操作cursor,可以将数据从这个对象中取出;
Cursor cursor=db.query("MyTable",null,null,null,null,null,null);
关于sql的指针
c.move(int offset); //以当前位置为参考,移动到指定行
c.moveToFirst(); //移动到第一行
c.moveToLast(); //移动到最后一行
c.moveToPosition(int position); //移动到指定行
c.moveToPrevious(); //移动到前一行
c.moveToNext(); //移动到下一行
c.isFirst(); //是否指向第一条
c.isLast(); //是否指向最后一条
c.isBeforeFirst(); //是否指向第一条之前
c.isAfterLast(); //是否指向最后一条之后
c.isNull(int columnIndex); //指定列是否为空(列基数为0)
c.isClosed(); //游标是否已关闭
c.getCount(); //总数据项数
c.getPosition(); //返回当前游标所指向的行数
c.getColumnIndex(String columnName);//返回某列名对应的列索引值
c.getString(int columnIndex); //返回当前行指定列的值
if(cursor.moveToFisrst()){
while(cursor.moveToNext()){
//通过列名得到下标
int index=cursor.getColumnIndex("列名");
//通过下标得到查询内容
String result=cursor.getString(index);
}
};
cursor.close();
阅读全文
0 0
- SQLiteDataBase的基本使用
- SqliteDatabase的基本使用
- SQLiteDatabase 基本使用
- SQLiteDatabase使用
- Android SQLiteDatabase的使用
- SQLiteDataBase数据库的使用
- 使用SQLiteDataBase操作数据库
- SQLiteDatabase的使用
- Android SQLiteDatabase的使用
- 使用assets本地SQLiteDatabase
- SQLiteDatabase数据库的使用
- Android SQLiteDatabase的使用
- android sqlitedatabase的使用
- sqlitedatabase的使用
- 关于Android中SQLiteDataBase的增删改查的基本使用
- SQLiteDatabase
- SQLiteDatabase
- SQLiteDatabase
- 使用亚马逊AWS云服务器进行深度学习——免环境配置/GPU支持/Keras/TensorFlow/OpenCV
- 初识WebMagic
- MACfanhonggongjishixian
- ubuntu16.04 打开 关闭 图形界面启动
- 卡尔曼滤波
- SQLiteDatabase 基本使用
- 卡尔曼滤波(2)
- shell基础知识梳理二
- 欢迎使用CSDN-markdown编辑器
- C# 之 TcpClient和Socket
- 股票行情图的绘制,分时图和闪电图
- 以数据之力深化产业格局 中译语通年度峰会将至
- 腾讯推出大数据品牌“腾讯慧聚”,看大数据如何助力政企工作
- 福特取得智能手机壳专利:望取代汽车钥匙