初始化升级数据库,数据的新增和查询

package com.example.wang.testapp3;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class TestActivity2 extends AppCompatActivity {

    EditText et_id,et_name,et_sex,et_age;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test2);
        et_id=(EditText)findViewById(R.id.et_id);

        et_name=(EditText)findViewById(R.id.et_name);

        et_sex=(EditText)findViewById(R.id.et_sex);

        et_age=(EditText)findViewById(R.id.et_age);
    }

    //初始化数据库
    public void bt1_OnClick(View v)
    {
        //使用工具类得到数据库对象
        MyDBHelper myDBHelper=new MyDBHelper("test.db",1);

        //得到连接
        SQLiteDatabase sd = myDBHelper.getReadableDatabase();

        Toast.makeText(TestActivity2.this, "连接数据库成功", Toast.LENGTH_SHORT).show();

        //关闭连接
        sd.close();
    }

    //初始化数据库
    public void bt2_OnClick(View v)
    {
        //使用工具类得到数据库对象
        MyDBHelper myDBHelper=new MyDBHelper("test.db",2);

        //得到连接
        SQLiteDatabase sd = myDBHelper.getReadableDatabase();

        Toast.makeText(TestActivity2.this, "连接数据库成功", Toast.LENGTH_SHORT).show();

        //关闭连接
        sd.close();
    }

    //插入新数据
    public  void  bt3_OnClick(View v)
    {
        //1-连接数据库,得到数据库连接对象

        SQLiteDatabase sd = new MyDBHelper("test.db",2).getReadableDatabase();
        //2-准备数据

        ContentValues cv=new ContentValues();

        cv.put("name",et_name.getText().toString());

        cv.put("sex",et_sex.getText().toString());

        cv.put("age",et_age.getText().toString());

        //3-调用insert(),插入数据
        Long l=sd.insert("t_user", null, cv);

        Toast.makeText(TestActivity2.this, "插入数据的主键="+l, Toast.LENGTH_SHORT).show();

        //4-关闭连接
        sd.close();
    }


    //数据查询
    public  void  bt4_OnClick(View v)
    {

        //1.得到连接
        SQLiteDatabase sd = new MyDBHelper("test.db",2).getReadableDatabase();

        //2.全表查询
        Cursor c=sd.query("t_user", null, null, null, null, null, null);

        //3.遍历结果集
        while (c.moveToNext())
        {
            //读取数据
            String str="_id="+c.getLong(0)+" name="+c.getString(1)+
                    " sex="+c.getString(2)+" age="+c.getInt(3);

            Log.e("TAG",str);


        }

        c.close();

        //4.关闭连接
        sd.close();

    }


    //实现SQLiteOpenHelper的内部类
    class MyDBHelper extends SQLiteOpenHelper
    {
        //构造方法
        public  MyDBHelper(String dbname,int ver)
        {
            //显示调用父类的构造方法
            //必须在第一行
            super(TestActivity2.this,dbname,null,ver);
        }
        //创建和初始化数据库
        @Override
        public void onCreate(SQLiteDatabase db) {

            //1-执行创建数据库的语句

            String sql="CREATE TABLE t_user" + " ("_id"  INTEGER AUTOINCREMENT NOT NULL," +
                    ""name"  VARCHAR(20) NOT NULL," +
                    ""sex"  CHAR(1)," +
                    ""age"  INTEGER," +
                    "PRIMARY KEY ("_id"))";
            db.execSQL(sql);

            Log.e("TAG","表创建成功");
            //2-执行初始化数据的语句,insert语句
            ContentValues cv = new ContentValues();

            cv.put("name","张三");
            cv.put("sex","男");
            cv.put("age", 20);

            //执行插入
            Long l=db.insert("t_user", null, cv);
            Log.e("TAG", "初始化数据=" + l);
        }

        //升级数据库
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

            //修改数据
            if(newVersion==2)
            {
                ContentValues cv=new ContentValues();

                cv.put("name","李四");

                String sql="update t_user set name='李四' where _id=1";

                //调用数据库连接类的方法

                String[] str={"1","18"};
                int i=db.update("t_user", cv, "_id=? and age>?",str);

                Log.e("TAG","升级数据 数据条数="+i);
            }


        }


    }
}
java
<?xml version="1.0" encoding="utf-8"?>
<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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.wang.testapp3.TestActivity2"
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="初始化数据库"
        android:onClick="bt1_OnClick"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="升级数据库"
        android:onClick="bt2_OnClick"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="id"
            android:id="@+id/et_id"/>
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="name"
            android:id="@+id/et_name"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="sex"
            android:id="@+id/et_sex"/>
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="age"
            android:id="@+id/et_age"/>
    </LinearLayout>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="新增数据"
        android:onClick="bt3_OnClick"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="数据查询"
        android:onClick="bt4_OnClick"/>



</LinearLayout>
xml
原文地址:https://www.cnblogs.com/wangchuanqi/p/5557862.html