赵雅智_sqlite修改表结构

1.更改数据库版本号(每次更新都一定要进行版本的升级)

2.更新语句一条一条写,不能并列写

例如:

public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
	db.execSQL("alter table users add userage integer;<span style="font-family: Arial, Helvetica, sans-serif;">alter table users add usersalary doouble</span>");
}

上面语句只能执行“;”前的语句,后面的无法插入。

所以要将代码改为下式代码,才能两条语句都执行。

public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
	db.execSQL("alter table users add userage integer");
	db.execSQL("alter table users add usersalary doouble");
}

具体代码:

创建数据库代码:DatabaseHelper

package com.example.android_sqlite.database;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {
	// 数据库名称
	private static final String DATABASENAME = "csdn.db";
	// 数据库更新版本号
	private static int databaseBersion = 2;

	/**
	 *
	 * @param context
	 *            :上下文对象
	 * @param name
	 *            :数据库名称
	 * @param factory
	 *            :cursor工厂对象,可以设置null.采用默认的CursorFactory对象
	 * @param version
	 *            :数据库版本号
	 */
	public DatabaseHelper(Context context) {
		super(context, DATABASENAME, null, databaseBersion);
	}

	/**
	 * 当数据库第一次创建的时候会调用这个方法
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table users(userid integer primary key autoincrement,username varchar(20))");
	}

	/**
	 * 当数据库的版本升级的时候,自动调用这个方法(根据数据库的版本号)
	 */
	@Override
	public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
		db.execSQL("alter table users add userage integer");
		db.execSQL("alter table users add usersalary doouble");
		System.out.println("-----------------升级了-----------------");

	}

}

测试类:DatabaseTese.java

package com.example.android_sqlite.test;

import com.example.android_sqlite.database.DatabaseHelper;

import android.test.AndroidTestCase;

public class DatabaseTese extends AndroidTestCase {
	public void createDatabase() {
		DatabaseHelper dh = new DatabaseHelper(getContext());
		dh.getWritableDatabase();
	}
}

运行结果如下:

控制台输出:

cmd命令行输出:

赵雅智_sqlite修改表结构,布布扣,bubuko.com

时间: 2024-12-16 06:47:19

赵雅智_sqlite修改表结构的相关文章

赵雅智:android教学大纲

带下划线为具体内容链接地址,点击后可跳转,希望给大家尽一些微薄之力,目前还在整理中 教学章节 教学内容 学时安排 备注 1 Android快速入门 2 Android模拟器与常见命令 3 Android用户界面设计 4 Android网络通信及开源框架引用 5 线程与消息处理 6 数据存储及访问 7 Android基本单元应用activity 8 Android应用核心Intent 9 资源访问 10 ContentProvider实现数据共享 11 BroadcastReceiver 12 S

赵雅智_使用SQLiteDatabase提供的增删改查方法及事务

知识点详解:http://blog.csdn.net/zhaoyazhi2129/article/details/9026093 MainActivity.java,User.java,BaseDao.java,UserDao.java同上篇 http://blog.csdn.net/zhaoyazhi2129/article/details/28640195 UserDaoImple.java package com.example.android_sqlite.dao.impl; impor

赵雅智_android系统联系人app分析并获取数据

手机联系人存放位置 和短信一样在data-data下 手机联系人数据库解析 将contacts2.db表导出,通过SQLiteexpert查看 mimetypes表:存放的数据类型(电话,头像,姓名,邮箱) 外键: raw_contacts表:存放联系人的id contact_id:联系人id display_name:联系人姓名 data表:存放联系人的数据 data1:联系人数据 data2:在mimetypes表中data1表示值得意义 mimetype_id:联系人ID,data数据所属

赵雅智_android_frame动画

在开始实例讲解之前,先引用官方文档中的一段话: Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画.Frame动画可以被定义在XML文件中,也可以完全编码实现. 如果被定义在XML文件中,我们可以放置在/res下的anim或drawable目录中(/res/[anim | drawable]/filename.xml),文件名可以作为资源ID在代码中引用:如果由完全由编码实现,我们需要使用到AnimationDrawable对象. 如果是将动画定义在XML

赵雅智_Tween动画(旋转、平移、放缩和渐变)

Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). Tweene Animations. 主要类 Animation   动画 AlphaAnimation 渐变透明度 RotateAnimation 画面旋转 ScaleAnimation 渐变尺寸缩放 TranslateAnimation 位置移动 AnimationSet  动画集 该View很简单,画面上只有一个图片. 现在我们要对整个View分别实现各种Tween动画效果. AlphaAnim

赵雅智_Android案例_刮刮乐

实现效果 主要代码 <FrameLayout 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" > <I

mariadb 实用功能3 &nbsp; 修改表结构显示进度

在工作中需要修改一个表结构不知道进度,苦苦的等待也是很煎熬的事情. mariadb 贴心的小功能,让人眼前一亮,产生了临时表,还有进度可以看, good,good. 直接操作,看结果 MariaDB [test]> select version(); +-----------------+ | version()       | +-----------------+ | 10.1.20-MariaDB | +-----------------+ 1 row in set (0.00 sec)

赵雅智:js知识点汇总

赵雅智:js知识点汇总,布布扣,bubuko.com

赵雅智_Android_Canvas

Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0. android.graphics和android.graphics.drawable包 大部分2D使用的api都在android.graphics和android.graphics.drawable包中. 他们提供了图形处理相关的: Canvas.ColorFilter.Point(点)和RetcF(矩形)等 还有一些动画相关的:AnimationDrawable. Bit