Android笔记(四十二) Android中的数据存储——SQLite(四)update
update方法的四个参数:
update()方法参数 | 对应的sql部分 | 描述 |
table | update table_name | 更新的表名 |
values | set column=xxx | ContentValues |
whereClause | where column | 修改条件 |
whereArgs | where column = xx | 修改条件的参数 |
看代码:
MainActivity.java
package cn.lixyz.sqlite; import android.app.Activity; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private EditText name, age, paramter, originalAge, newAge; private Button insertButton, selectButton, paramterSelect, updateButton; private SQLiteDatabase database; private MySQLiteOpenHelper msop; public String inputSex; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findView(); msop = new MySQLiteOpenHelper(this, "user.db", null, 1); database = msop.getReadableDatabase(); } private void findView() { name = (EditText) findViewById(R.id.name); age = (EditText) findViewById(R.id.age); insertButton = (Button) findViewById(R.id.insertButton); selectButton = (Button) findViewById(R.id.selectButton); paramter = (EditText) findViewById(R.id.paramter); paramterSelect = (Button) findViewById(R.id.paramterSelect); originalAge = (EditText) findViewById(R.id.originalAge); newAge = (EditText) findViewById(R.id.newAge); updateButton = (Button) findViewById(R.id.updateButton); } public void clickButton(View view) { switch (view.getId()) { case R.id.selectButton: selectData(); break; case R.id.insertButton: insertData(); break; case R.id.paramterSelect: paramterSelect(); break; case R.id.updateButton: updateData(); break; } } private void updateData() { String oldAge = originalAge.getText().toString(); String updateAge = newAge.getText().toString(); ContentValues cv = new ContentValues(); cv.put("age", updateAge); String whereColumn = "age=?";// 修改条件 String[] whereArgs = { oldAge }; int i = database.update("user", cv, whereColumn, whereArgs); if (1 > 0) { Toast.makeText(MainActivity.this, "更新成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "更新不成功", Toast.LENGTH_SHORT).show(); } } private void paramterSelect() { String inputAge = paramter.getText().toString(); Cursor c = database.rawQuery("select * from user where age>?", new String[] { inputAge }); if (c.moveToFirst()) { do { int id = c.getInt(c.getColumnIndex("id")); String name = c.getString(c.getColumnIndex("name")); String age = c.getString(c.getColumnIndex("age")); Log.d("TTTT", "id=" + id + ",name=" + name + ",age=" + age); } while (c.moveToNext()); } c.close(); } private void insertData() { String inputAge = age.getText().toString(); String inputName = name.getText().toString(); ContentValues cv = new ContentValues(); cv.put("name", inputName); cv.put("age", inputAge); database.insert("user", null, cv); Toast.makeText(MainActivity.this, "插入成功", Toast.LENGTH_SHORT).show(); age.setText(""); name.setText(""); } private void selectData() { Cursor c = database.query("user", null, null, null, null, null, null); if (c.moveToFirst()) { do { int id = c.getInt(c.getColumnIndex("id")); String name = c.getString(c.getColumnIndex("name")); String age = c.getString(c.getColumnIndex("age")); Log.d("TTTT", "id=" + id + ",姓名=" + name + ",年龄=" + age); } while (c.moveToNext()); } c.close(); } class MySQLiteOpenHelper extends SQLiteOpenHelper { private static final String CREATE_USER = "create table user(id integer primary key autoincrement,name text,age text)"; private Context mContext; public MySQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); mContext = context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_USER); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } } }
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入姓名" /> <EditText android:id="@+id/age" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入年龄" /> <Button android:id="@+id/insertButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="clickButton" android:text="点击插入" /> <Button android:id="@+id/selectButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="clickButton" android:text="点击查询" /> <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="条件搜索" /> <EditText android:id="@+id/paramter" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="您要搜多少岁以上的?" /> <Button android:id="@+id/paramterSelect" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="clickButton" android:text="点击搜索" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="update" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/originalAge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="要修改的年龄" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="修改为" /> <EditText android:id="@+id/newAge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="新年龄" /> </LinearLayout> <Button android:id="@+id/updateButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="clickButton" android:text="UPDATE" /> </LinearLayout>
运行结果:
通过结果可以看到,将之前数据库内的年龄为12的修改为20