zoukankan      html  css  js  c++  java
  • Android笔记(四十) Android中的数据存储——SQLite(二) insert

       准备工作:

             我们模拟一个注册的页面,先看UI

      我们需要创建一个数据库:user,数据库包含表user,user表包含字段id、username、password、mobilephone

      MainActivity.java

    package cn.lixyz.sqlitedemo;
    
    import android.app.Activity;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        private EditText username,password,againPassword,mobilephone;
        private Button register;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            findView();
    
            MyDatabaseHelper mdh = new MyDatabaseHelper(MainActivity.this,"user.db",null,1);
            SQLiteDatabase database = mdh.getWritableDatabase();
            String dbName = mdh.getDatabaseName();
            Toast.makeText(MainActivity.this,"数据库 " + dbName + " 创建成功",Toast.LENGTH_SHORT).show();
    
            register.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                   
                }
            });
    
        }
    
        private void findView(){
            username = (EditText) findViewById(R.id.username);
            password = (EditText) findViewById(R.id.password);
            againPassword = (EditText) findViewById(R.id.againPassword);
            mobilephone = (EditText) findViewById(R.id.mobilephone);
            register = (Button) findViewById(R.id.register);
        }
    }

      MyDatabaseHelper.java

    package cn.lixyz.sqlitedemo;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.widget.Toast;
    
    /**
     * Created by LGB on 2015/10/16.
     */
    public class MyDatabaseHelper extends SQLiteOpenHelper {
    
        public static final String CREATE_USER = "create table user (id integer primary key autoincrement,username text,password text,mobilephone text)";
        private Context mContext;
    
        public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
            super(context, name, factory, version);
            mContext = context;
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(CREATE_USER);
            Toast.makeText(mContext,"user表创建成功",Toast.LENGTH_SHORT).show();
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
        }
    }

      activity_main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <EditText
            android:id="@+id/username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:hint="请输入您要注册的用户名" />
    
        <EditText
            android:id="@+id/password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:hint="输入您的密码"
            android:password="true"/>
    
        <EditText
            android:id="@+id/againPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:hint="确认您的密码"
            android:password="true"/>
        <EditText
            android:id="@+id/mobilephone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="输入您的手机号"
            android:layout_marginTop="10dp"/>
        <Button
            android:id="@+id/register"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="注    册"/>
    
    </LinearLayout>

       我们要做的是,点击注册按钮,将用户填入的信息存入到user.user中去

       添加数据:

      在android中,SQLiteDatabase提供了一个insert方法,这个方法就是专门用于添加数据的

    insert(String table, String nullColumnHack, ContentValues values)

      第一个参数是要插入的表名,第二个参数是用于在未指定添加数据的情况下给某些可以为空的列自动赋值NULL,第三个参数是一个ContentValues对象。

      ContentValues提供了一系列的put方法重载,用于向ContentValues对象中添加数据,ContentValues对象内包含一个Map对象,其key为数据库表中的列名,values为要添加的内容

      例子:

      MainActivity.java

    package cn.lixyz.sqlitedemo;
    
    import android.app.Activity;
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        private EditText ed_username,ed_password,ed_againPassword,ed_mobilephone;
        private Button bt_register;
        private SQLiteDatabase database;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            findView();
    
            MyDatabaseHelper mdh = new MyDatabaseHelper(MainActivity.this,"user.db",null,1);
            database = mdh.getWritableDatabase();
            String dbName = mdh.getDatabaseName();
            Toast.makeText(MainActivity.this,"数据库 " + dbName + " 创建成功",Toast.LENGTH_SHORT).show();
    
            bt_register.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ContentValues cv = new ContentValues();
                    String username = ed_username.getText().toString();
                    cv.put("username",username);
                    if (ed_password.getText().toString().equals(ed_againPassword.getText().toString())){
                        String password = ed_password.getText().toString();
                        cv.put("password",password);
                    }else{
                        Toast.makeText(MainActivity.this,"您的密码不一致",Toast.LENGTH_SHORT).show();
                        cv.clear();
                        return;
                    }
                    String mobilephone = ed_mobilephone.getText().toString();
                    cv.put("mobilephone",mobilephone);
                    database.insert("user", null, cv);
                    Toast.makeText(MainActivity.this,"插入成功",Toast.LENGTH_SHORT).show();
                    cv.clear();
                }
            });
    
        }
    
        private void findView(){
            ed_username = (EditText) findViewById(R.id.ed_username);
            ed_password = (EditText) findViewById(R.id.ed_password);
            ed_againPassword = (EditText) findViewById(R.id.ed_againPassword);
            ed_mobilephone = (EditText) findViewById(R.id.ed_mobilephone);
            bt_register = (Button) findViewById(R.id.bt_register);
        }
    }

      MyDatabaseHelper.java

    package cn.lixyz.sqlitedemo;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.widget.Toast;
    
    /**
     * Created by LGB on 2015/10/16.
     */
    public class MyDatabaseHelper extends SQLiteOpenHelper {
    
        public static final String CREATE_USER = "create table user (id integer primary key autoincrement,username text,password text,mobilephone text)";
        private Context mContext;
    
        public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
            super(context, name, factory, version);
            mContext = context;
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(CREATE_USER);
            Toast.makeText(mContext,"user表创建成功",Toast.LENGTH_SHORT).show();
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
        }
    }

      activity_main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <EditText
            android:id="@+id/ed_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:hint="请输入您要注册的用户名" />
    
        <EditText
            android:id="@+id/ed_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:hint="输入您的密码"
            android:password="true"/>
    
        <EditText
            android:id="@+id/ed_againPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:hint="确认您的密码"
            android:password="true"/>
        <EditText
            android:id="@+id/ed_mobilephone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="输入您的手机号"
            android:layout_marginTop="10dp"/>
        <Button
            android:id="@+id/bt_register"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="注    册"/>
    
    </LinearLayout>

      运行结果:

      DDMS导出数据库查看:

      插入成功!

  • 相关阅读:
    c函数调用过程
    查找匹配行及前后5行
    指向类成员函数的指针
    C++箴言:理解typename的两个含义
    不定参数
    定时器
    unix编译
    sed
    大脑皮层的梦工厂
    静态链接库顺序问题
  • 原文地址:https://www.cnblogs.com/xs104/p/4891759.html
Copyright © 2011-2022 走看看