数据库的初始化和升级(代码)
Posted 安然罒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库的初始化和升级(代码)相关的知识,希望对你有一定的参考价值。
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:paddingBottom="@dimen/activity_vertical_margin" 7 android:paddingLeft="@dimen/activity_horizontal_margin" 8 android:paddingRight="@dimen/activity_horizontal_margin" 9 android:paddingTop="@dimen/activity_vertical_margin" 10 tools:context="com.hanqi.testapp3.TestActivity2" 11 android:orientation="vertical"> 12 13 <Button 14 android:layout_width="match_parent" 15 android:layout_height="wrap_content" 16 android:text="初始化数据库" 17 android:onClick="bt1_OnClick"/> 18 19 <Button 20 android:layout_width="match_parent" 21 android:layout_height="wrap_content" 22 android:text="升级数据库" 23 android:onClick="bt2_OnClick"/> 24 25 26 </LinearLayout>
1 package com.hanqi.testapp3; 2 3 import android.content.ContentValues; 4 import android.database.Cursor; 5 import android.database.sqlite.SQLiteDatabase; 6 import android.database.sqlite.SQLiteOpenHelper; 7 import android.support.v7.app.AppCompatActivity; 8 import android.os.Bundle; 9 import android.util.Log; 10 import android.view.View; 11 import android.widget.EditText; 12 import android.widget.Toast; 13 14 public class TestActivity2 extends AppCompatActivity { 15 16 17 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.activity_test2); 21 22 } 23 24 //初始化数据库 25 public void bt1_OnClick(View v) 26 { 27 //使用工具类得到数据库对象 28 MyDBHelper myDBHelper=new MyDBHelper("test.db",2); 29 30 //得到连接 31 SQLiteDatabase sd=myDBHelper.getReadableDatabase(); 32 33 Toast.makeText(TestActivity2.this, "连接数据库成功", Toast.LENGTH_SHORT).show(); 34 35 //关闭连接 36 sd.close(); 37 } 38 39 //升级数据库 40 public void bt2_OnClick(View v) 41 { 42 //使用工具类得到数据库对象 43 MyDBHelper myDBHelper=new MyDBHelper("test.db",2); 44 45 //得到连接 46 SQLiteDatabase sd=myDBHelper.getWritableDatabase(); 47 48 Toast.makeText(TestActivity2.this, "连接数据库成功", Toast.LENGTH_SHORT).show(); 49 50 //关闭连接 51 sd.close(); 52 } 53 54 55 56 //实现SQLiteOpenHelper的内部类 57 class MyDBHelper extends SQLiteOpenHelper 58 { 59 //构造方法 60 public MyDBHelper(String dbname,int ver) 61 { 62 //显示调用父类的构造方法 63 //必须在第一行 64 super(TestActivity2.this,dbname,null,ver); 65 66 } 67 68 //创建和初始化数据库 69 @Override 70 public void onCreate(SQLiteDatabase db) { 71 72 //1.执行创建数据库的语句 73 String sql="CREATE TABLE t_user" + 74 "(_id INTEGER PRIMARY KEY " + 75 "AUTOINCREMENT NOT NULL," + 76 "name VARCHAR(20) NOT NULL," + 77 "sex CHAR(1),age INTEGER)"; 78 db.execSQL(sql); 79 80 Log.e("TAG","表创建成功"); 81 //2.执行初始化数据的语句,insert语句 82 ContentValues cv=new ContentValues(); 83 84 cv.put("name","张三"); 85 cv.put("sex","男"); 86 cv.put("age","20"); 87 88 //执行插入,返回主键 89 long l=db.insert("t_user",null,cv); 90 91 Log.e("TAG","初始化数据="+l); 92 } 93 94 //升级数据库 95 //触发条件:当版本号增大 96 @Override 97 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 98 99 //修改数据 100 if(newVersion==2) 101 { 102 ContentValues cv=new ContentValues(); 103 cv.put("name","李四"); 104 105 String sql="update t_user set name=\'李四\' where _id=1 "; 106 107 String[] str={"1","18"}; 108 //调用db的更新方法 109 int i=db.update("t_user", cv, "_id=? and age>?",str); 110 111 Log.e("TAG","升级数据 数据条数="+i); 112 } 113 114 } 115 } 116 }
以上是关于数据库的初始化和升级(代码)的主要内容,如果未能解决你的问题,请参考以下文章
在android studio中升级repo v9后,片段必须是公共静态类崩溃错误
vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容
环境初始化 Build and Install the Apache Thrift IDL Compiler Install the Platform Development Tools(代码片段