使用内置函数操作数据库

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