android 怎么往数据库里面添加数据

如题所述

一、引入
数据库创建的问题解决了,接下来就该使用数据库实现应用程序功能的时候了。基
本的操作包括创建、读取、更新、删除,即我们通常说的 CRUD(Create, Read, Update, Delete)。
在实现这些操作的时候,我们会使用到两个比较重要的类 SQLiteDatabase 类和 Cursor 类。

二、创建表
1,execSQL(String sql):执行一条 sql 语句,且执行操作不能为 SELECT
因为它的返回值为 void,所以推荐使用 insert、update 方法等
2.,execSQL (String sql,Object[] bindArgs)
sql:执行一条 sql 语句
bindArgs:为 sql 语句中的?赋值

三、添加数据
1、execSQL(String sql)
2、使用对象的 insert 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
db.insert(TABLE_NAME, null, values);
参数:
table:数据库中的表名
nullColumnHack:指定默认插入字段,为 null 时能插入数据
values:表示插入字段所对应的值,使用 put 方法。

四、删除数据
1、execSQL(String sql)
2、使用对象的 delete 方法
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(id)};
//db.delete(TABLE_NAME, "_id="+id, null);
db.delete(TABLE_NAME, whereClaues, whereArgs);
参数
table:数据库的表名
whereClause:where 子句,比如:_id=?
whereArgs:where 子句中?的值

五、修改数据
1、execSQL(String sql)
2、使用对象的 delete 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(user.getId())};
db.update(TABLE_NAME, values, whereClaues, whereArgs);
参数
table:数据库的表名
values:代表要修改的值,修改方法还是 put(key,values)
whereClause:条件子句,比如 id=?,name=?
whereArgs:为 whereClause 中的?赋值,比如:new String[]{"1","张三"}

图:

参考代码:

程序内使用SQLite数据库是通过SQLiteOpenHelper进行操作  

1.       自己写个类继承SQLiteOpenHelper,重写以下3个方法  

public void onCreate(SQLiteDatabase db)   

{//创建数据库时的操作,如建表}  

   

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)   

       {  

           //版本更新的操作  

       }  

2.    通过SQLiteOpenHelper的getWritableDatabase()获得一个SQLiteDatabase数据库,以后的操作都是对SQLiteDatabase进行操作。  

3.       对得到的SQLiteDatabase对象进行增,改,删,查等操作。  

代码  

package cx.myNote;  

   

import android.content.ContentValues;  

import android.content.Context;  

import android.content.Intent;  

import android.database.Cursor;  

import android.database.sqlite.SQLiteDatabase;  

import android.database.sqlite.SQLiteOpenHelper;  

   

//DBOptions for login  

public class DBOptions {  

       private static final String DB_NAME = "notes.db";  

       private static final String DB_CREATE="create table logininf(name text,pwd text)";  

       public class DBHelper extends SQLiteOpenHelper  

       {  

   

              public DBHelper(Context context) {  

                     super(context,DB_NAME, null, 1);  

                     }  

   

              @Override  

              public void onCreate(SQLiteDatabase db) {  

                     // TODO Auto-generated method stub  

                     //建表  

                 db.execSQL(DB_CREATE);  

              }  

                

              @Override  

              public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  

                     // TODO Auto-generated method stub  

                     db.execSQL("drop table if exists logininf");  

                     onCreate(db);  

              }  

                

       }  

       private Context context;  

       private SQLiteDatabase db;  

       private DBHelper dbHelper;  

       public  DBOptions(Context context)  

       {  

              this.context = context;  

              dbHelper = new DBHelper(context);  

              db=dbHelper.getReadableDatabase();  

                

       }  

  //自己写的方法,对数据库进行操作  

       public String getName()  

       {  

                

              Cursor cursor = db.rawQuery("select name from logininf", null);  

              cursor.moveToFirst();  

              return cursor.getString(0);       

       }  

       public int changePWD(String oldP,String pwd)  

       {  

              ContentValues values = new ContentValues();  

              values.put("pwd", pwd);  

              return db.update("logininf", values,"pwd="+oldP, null);  

       }  

}  


insert方法插入的一行记录使用ContentValus存放,ContentValues类似于Map,它提供了put(String key, Xxx value)(其中key为数据列的列名)方法用于存入数据、getAsXxxx(String key)方法用于取出数据

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-14
参考如下内容:
你通过getText()方法首先得到输入的值,然后调用数据库的插入方法 db.insert();插入到数据库中就行 就想这样
EditText et ;
String num = et.getText().toString();
public void addData(String num) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("num", num);
db.insert("表名", null, values);
}

当你调用这个 addData()方法时就会向数据库中插入数据了本回答被网友采纳