zoukankan      html  css  js  c++  java
  • Android学习(十) SQLite 基于SQLiteOpenHelper的操作方式

    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" >
    
        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="插入数据" />
    
        <Button
            android:id="@+id/button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="读取数据" />
    
        <Button
            android:id="@+id/button3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="修改数据" />
    
        <Button
            android:id="@+id/button4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="删除数据" />
    
    </LinearLayout>

    DBOpenHelper.java

    package com.example.sqlitedemo3;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    
    public class DBOpenHelper extends SQLiteOpenHelper{
    
        //实例化时,指定创建数据库的名称
        public DBOpenHelper(Context context, String name) {
            super(context, name, null, 1);
        }
    
        @Override  //当第一次创建数据库时调用,系统自动调用,只执行一次
        public void onCreate(SQLiteDatabase db) {
            //第一次执行时,创建tb_user表
            db.execSQL("create table if not exists tb_user(id integer primary key autoincrement,name text not null,age integer not null,sex text not null)");
        }
    
        @Override  //当数据库版本发生改变时调用,系统自动调用
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            
        }
    
    }

    main.java

    package com.example.sqlitedemo3;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.ContentValues;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        Button btnAdd;
        Button btnQuery;
        Button btnUpdate;
        Button btnDelete;
        SQLiteDatabase db;
        DBOpenHelper helper;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //创建DBOpenHelper对象,第一个参数为调用的activity,第二个参数为数据库的名称
            helper = new DBOpenHelper(MainActivity.this, "user.db");        
    
            btnAdd = (Button) findViewById(R.id.button1);
            btnQuery = (Button) findViewById(R.id.button2);
            btnUpdate = (Button) findViewById(R.id.button3);
            btnDelete = (Button) findViewById(R.id.button4);
    
            btnAdd.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {                
                    //只是可写的数据库对象
                    db = helper.getWritableDatabase();
                    
                    ContentValues values = new ContentValues();
                    values.put("name", "李四");
                    values.put("age", 20);
                    values.put("sex", "女");                
                    db.insert("tb_user", null, values);
                    values.clear();
                    
                    values.put("name", "王五");
                    values.put("age", 22);
                    values.put("sex", "男");                
                    db.insert("tb_user", null, values);
                    Toast.makeText(MainActivity.this, "添加成功", 1).show();
                    
                    db.close();
                }
            });
    
            btnQuery.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    //只是可写的数据库对象
                    db = helper.getReadableDatabase();
                    //其他方法和前面没有区别
                    Cursor cur = db.query("tb_user", new String[]{"id","name","age","sex"}, null, null, null, null, null);
                    while(cur.moveToNext()){
                        int id = cur.getInt(0);
                        String name = cur.getString(cur.getColumnIndex("name"));
                        int age = cur.getInt(cur.getColumnIndex("age"));
                        String sex = cur.getString(cur.getColumnIndex("sex"));
                        
                        Log.i("stuinfo",id + ","+ name + "," + age + "," + sex);
                    }
                    cur.close();
                    db.close();
                }
            });
    
            btnUpdate.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    //修改数据
                    db = helper.getWritableDatabase();
                    ContentValues values = new ContentValues();
                    values.put("name", "张三丰");
                    int result = db.update("tb_user", values, "id=?", new String[]{"1"});
                    if(result > 0)
                        Toast.makeText(MainActivity.this, "修改成功", 1).show();
                    else
                        Toast.makeText(MainActivity.this, "修改失败", 1).show();
                    db.close();
                }
            });
    
            btnDelete.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    db = helper.getWritableDatabase();
                    //删除数据
                    int result = db.delete("tb_user", "id=?", new String[]{"1"});
                    if(result > 0)
                        Toast.makeText(MainActivity.this, "删除成功", 1).show();
                    else
                        Toast.makeText(MainActivity.this, "删除失败", 1).show();
                    db.close();
                }
            });
        }
    
    }
  • 相关阅读:
    array_map()与array_shift()搭配使用 PK array_column()函数
    Educational Codeforces Round 8 D. Magic Numbers
    hdu 1171 Big Event in HDU
    hdu 2844 poj 1742 Coins
    hdu 3591 The trouble of Xiaoqian
    hdu 2079 选课时间
    hdu 2191 珍惜现在,感恩生活 多重背包入门题
    hdu 5429 Geometric Progression 高精度浮点数(java版本)
    【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
    hdu::1002 A + B Problem II
  • 原文地址:https://www.cnblogs.com/zhengcheng/p/4380498.html
Copyright © 2011-2022 走看看