初始化升级数据库,数据的新增和查询
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); } } } }
<?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>