您的位置:首页 > 数据库

数据库的初始化和升级(代码)

2016-06-06 22:49 225 查看
package com.hanqi.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 {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test2);

}

//初始化数据库
public void bt1_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 bt2_OnClick(View v)
{
//使用工具类得到数据库对象
MyDBHelper myDBHelper=new MyDBHelper("test.db",2);

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

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

//关闭连接
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 PRIMARY KEY " +
"AUTOINCREMENT NOT NULL," +
"name  VARCHAR(20) NOT NULL," +
"sex CHAR(1),age  INTEGER)";
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"};
//调用db的更新方法
int i=db.update("t_user", cv, "_id=? and age>?",str);

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

}
}
}


.java





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: