SQLite增改查删操作演示
SQLite增改查删操作演示-leansmall
《1》 效果:
《2》 UI设计:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginBottom="50dp"
>
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="SQLite增改查删操作演示"
android:textColor="#03A9F4"
android:textSize="30sp" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">
android:id="@+id/inset_edittext"
android:layout_width="0dp"
android:layout_weight="5"
android:layout_height="wrap_content"
android:hint="请输入要插入的数据"
android:textColorHint="#CCCCCC"/>
android:id="@+id/insert"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="增加" />
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:id="@+id/update_before_edittext"
android:layout_width="0dp"
android:layout_weight="2.5"
android:layout_height="wrap_content"
android:hint="请输入更新前的内容"
android:textColorHint="#CCCCCC"/>
android:id="@+id/update_after_edittext"
android:layout_width="0dp"
android:layout_weight="2.5"
android:layout_height="wrap_content"
android:hint="请输入更新后的内容"
android:textColorHint="#CCCCCC"/>
android:id="@+id/update"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="修改" />
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:id="@+id/delete_edittext"
android:layout_width="0dp"
android:layout_weight="5"
android:layout_height="wrap_content"
android:hint="请输入要删除的内容"
android:textColorHint="#CCCCCC"/>
android:id="@+id/delete"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="删除" />
android:id="@+id/query"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询所有"/>
android:id="@+id/clear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="清除所有" />
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_marginVertical="50dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:hint="查询内容为空"
android:textColorHint="#CCCCCC"
android:textColor="#6666FF"
android:textSize="25dp"/>
《3》 代码设计:
//1. DatabaseHelper.java 设计
public class DatabaseHelper extends SQLiteOpenHelper{
public static final String TB_NAME = "user";
//带全部参数的构造函数,此构造函数必不可少
public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建数据库的一个表格,表格名为user,执行sql语句
String sql = "CREATE TABLE IF NOT EXISTS " + TB_NAME +"name varchar(20)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TB_NAME);
onCreate(db);
}
}
//2. MainActivity.java 设计
public class MainActivity extends AppCompatActivity{
//声明所有要用到的按钮,文本框,编辑框的对象
Button insert;
Button update;
Button delete;
Button query;
Button clear;
EditText insert_edittext;
EditText delete_edittext;
EditText update_before_edittext;
EditText update_after_edittext;
TextView textview;
DatabaseHelper dbHelper;
SQLiteDatabase db;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//根据Layout按钮id得到Java按钮对象
insert = (Button) findViewById(R.id.insert);//增加按钮
update = (Button) findViewById(R.id.update);//修改按钮
delete = (Button) findViewById(R.id.delete);//删除按钮
query = (Button) findViewById(R.id.query);//查询按钮
clear = (Button)findViewById(R.id.clear);//清除编辑框和文本框内容的按钮
//因为响应点击按钮事件时要操作文本输入框中的内容
// 所以要获取相应文本输入框的对象及其中输入内容
insert_edittext = (EditText)findViewById(R.id.inset_edittext);
delete_edittext = (EditText)findViewById(R.id.delete_edittext);
update_before_edittext = (EditText)findViewById(R.id.update_before_edittext);
update_after_edittext = (EditText)findViewById(R.id.update_after_edittext);
textview = (TextView)findViewById(R.id.textview);//放置查询内容的文本框
//依靠DatabaseHelper的构造函数创建数据库
dbHelper = new DatabaseHelper(MainActivity.this, "test_db",null,1);
db = dbHelper.getWritableDatabase();
//数据库增加记录
insert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String insert_data = insert_edittext.getText().toString();
//创建存放数据的ContentValues对象
ContentValues values = new ContentValues();
values.put("name",insert_data);
//数据库执行插入命令
db.insert("user", null, values);
}
});
//数据库修改记录
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String update_before_data = update_before_edittext.getText().toString();
String update_after_data = update_after_edittext.getText().toString();
ContentValues values2 = new ContentValues();
values2.put("name", update_after_data);
db.update("user", values2, "name = ?", new String[]{update_before_data});
}
});
//数据库删除记录
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String delete_data = delete_edittext.getText().toString();
db.delete("user", "name=?", new String[]{delete_data});
}
});
//数据库查询记录
query.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建游标对象
Cursor cursor = db.query("user", new String[]{"name"}, null, null, null, null, null);
//利用游标遍历所有数据对象
//为了显示全部,把所有对象连接起来,放到TextView中
String textview_data = "";
while(cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex("name"));
textview_data = textview_data + "\n" + name;
}
textview.setText(textview_data);
// 关闭游标,释放资源
cursor.close();
}
});
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
insert_edittext.setText("");
delete_edittext.setText("");
update_before_edittext.setText("");
update_after_edittext.setText("");
textview.setText("");
}
});
}
@Override
public void onDestroy()
{
super.onDestroy();
if(db!=null)
{
db.close();//退出时,关闭数据库
}
}
}