1.数据库的管理类
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyOpenHelper extends SQLiteOpenHelper {
/**
* context:上下文
* name:数据库名字
* factory:目的是创建游标(游动光标)对象,默认用null
* version:数据库版本,从1开始递增,不能减
* */
public MyOpenHelper(Context context) {
super(context, "i01.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {//数据库第一次创建的时候调用
/**适合初始化表结构,用sql语句创建表
* 示例:创建一个两列的表,第一列为id,第二列为name
* id 一般以下划线开头“_id”
* interger 是数据类型
* primary key 指定id为主键
* autoincrement 自增长
* varchar(20) name不超过20个字符
* 注意:sqlite底层都将类型转化为string类型,但为了严谨,这里还是指定类型
*/
// db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20))");
//初始化一个三列的表
db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone varchar(20))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//当数据库版本升级时调用
/**适合更新表结构
* 示例:给表增加一列phone
* varchar(20) phone 不超过20个字符
* */
db.execSQL("alter table info add phone varchar(20)");
System.out.println("新版本数据库:"+newVersion+"旧版本:"+oldVersion);
}
}
2.增删改查操作
public class MainActivity extends Activity {
private MyOpenHelper myOpenHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myOpenHelper = new MyOpenHelper(getApplicationContext());
// //打开一个数据库(如果不存在就创建)
// SQLiteDatabase writableDatabase = myOpenHelper.getWritableDatabase();
// //打开一个数据库(如果不存在就创建),跟上面的区别是,如果磁盘满了,返回一个只读的数据库
//// SQLiteDatabase readableDatabase = myOpenHelper.getReadableDatabase();
}
public void click1(View v) {//点击按钮增加一条记录
//获取数据库对象
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
//执行增加一条的sql语句
db.execSQL("insert into info(name,phone) values(?,?)",new Object[]{"张三","13111112222"});
//数据库用完需要关闭
db.close();
}
public void click2(View v) {//删除一条记录
//获取数据库对象
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
//执行删除一条的sql语句
db.execSQL("delete from info where name=?",new Object[]{"张三"});
//数据库用完需要关闭
db.close();
}
public void click3(View v) {//修改一条记录
//获取数据库对象
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
//执行修改一条的sql语句
db.execSQL("update info set phone=? where name=?",new Object[]{"1871111","张三"});
//数据库用完需要关闭
db.close();
}
public void click4(View v) {//查询一条记录
//获取数据库对象
SQLiteDatabase db = myOpenHelper.getWritableDatabase();
//执行查询一条的sql语句(返回的是一个结果集,后面是占位符)
Cursor cursor = db.rawQuery("select * from info", null);//查询所有数据
if (cursor!=null && cursor.getCount()>0) {//查询结果不为空,且个数大于0
while (cursor.moveToNext()) {//循环,每次都取下一个,取不到则结束
//取值,参数为列的索引,从0开始
String name = cursor.getString(1);
String phone = cursor.getString(2);
System.out.println("name:"+name+" phone:"+phone);
}
}
//数据库用完需要关闭
db.close();
}
}
网友评论