使用内置函数操作数据库

本文介绍了一个关于Android中ContentValues类与SQLite数据库操作的具体示例。通过实例演示了如何创建表格、插入数据、更新记录及查询数据等关键操作。

0.视频:http://www.imooc.com/video/3383

1.笔记:

ContentValues:

1)用于存储一组可以被ContentResolve处理的值;

2)代码示例:

ContentValues values=new ContentValues();//类似hashMap key value
values.put("name", "张三");

3)执行对应的Sql操作:

db.update("stutb", values,"_id>?", new String[]{"3"});//将全部id>3的人的性别改成女
db.delete("stutb", "name like ?",new String[]{"%丰%"});//删除所有名字中带有丰的人

2.完整代码:

 1 import android.os.Bundle;
 2 import android.app.Activity;
 3 import android.content.ContentValues;
 4 import android.database.Cursor;
 5 import android.database.sqlite.SQLiteDatabase;
 6 import android.util.Log;
 7 import android.view.Menu;
 8 
 9 public class MainActivity extends Activity {
10 
11     @Override
12     protected void onCreate(Bundle savedInstanceState) {
13         super.onCreate(savedInstanceState);
14         setContentView(R.layout.activity_main);
15         
16         SQLiteDatabase db=openOrCreateDatabase("stu.db",MODE_PRIVATE,null);
17         db.execSQL("create table if not exists stutb(_id integer primary key autoincrement,name text not null,sex text not null,age integer not null)");
18         //使用内置函数操作数据库
19         ContentValues values=new ContentValues();//类似hashMap key value
20         values.put("name", "张三");
21         values.put("sex", "男");
22         values.put("age", 12);
23         long rowId=db.insert("stutb", null, values);
24         values.clear();
25         values.put("name", "张三丰");
26         values.put("sex", "男");
27         values.put("age", 22);
28         db.insert("stutb", null, values);
29         values.clear();
30         values.put("name", "张三丰");
31         values.put("sex", "男");
32         values.put("age", 32);
33         db.insert("stutb", null, values);
34         values.clear();
35         values.put("name", "张三封");
36         values.put("sex", "男");
37         values.put("age", 42);
38         db.insert("stutb", null, values);
39         values.clear();
40         values.put("name", "张三封");
41         values.put("sex", "男");
42         values.put("age", 52);
43         db.insert("stutb", null, values);
44         values.clear();
45         values.put("sex", "女");
46         db.update("stutb", values,"_id>?", new String[]{"3"});//将全部id>3的人的性别改成女
47         db.delete("stutb", "name like ?",new String[]{"%丰%"});//删除所有名字中带有丰的人
48         //查询结果集合
49         Cursor c=db.query("stutb",null, "_id>?",new String[]{"0"},null, null, "name");
50         if(c!=null){
51             String [] columns=c.getColumnNames();
52             while(c.moveToNext()){
53                 for(String columnName:columns){
54                     Log.i("info",c.getString(c.getColumnIndex(columnName)));
55                 }
56             }
57             c.close();
58         }
59     db.close();
60     }
61 }
View Code

 

3.运行结果:

4.遇到问题:数据库语句不准确导致程序运行不成功;log重复打印了。

 

转载于:https://www.cnblogs.com/moonlightml/p/6383837.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值