package com.example.day03_sqlite;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
public class MainActivity extends ActionBarActivity {
private SQLiteDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 得到MySQLiteOpenHelper对象
MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this);
// 以读的方式打开数据库,得到SQLiteDatabase对象
database = helper.getReadableDatabase();
}
// 插入
public void insert(View v) {
for (int i = 0; i < 5; i++) {
// 得到ContentValues,用于以键值对形式存值
ContentValues values = new ContentValues();
values.put("name", "张三" + i);
values.put("sex", "女" + i);
// 插入数据,
// 参数一:表名
// 参数二:当values参数为空或者里面没有内容的时候,就会将你指定的这个列名的值设为null,然后再向数据库中插入
// 参数三:要插入的数据
database.insert("student", null, values);
}
}
// 删除
public void delete(View v) {
// 参数一:表名
// 参数二:删除条件
// 参数三:删除条件里占位符对应的数据
database.delete("student", "sex = ?", new String[] { "女" });
}
// 修改
public void update(View v) {
// 参数一:表名
// 参数二:修改后的数据
// 参数三:修改条件
// 参数四:修改条件里占位符对应的数据
ContentValues values = new ContentValues();
values.put("name", "李四");
database.update("student", values, "name = ?", new String[] { "张三" });
}
// 查询
public void select(View v) {
// 参数一:表名
// 参数二:要查询的列名
// 参数三:查询条件
/*Table 表名
Columens 要返回的列
Selection 查询条件
selectionArgs 查询条件占位符对应的内容
groupBy 分组判断条件
Having 是否含有的判断条件
orderBy 排序判断条件
Limit 分页查询判断条件*/
Cursor cursor = database.query("student", new String[] { "name", "sex" },
"name like ? ", new String[] { "%张%" }, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
String sex = cursor.getString(cursor.getColumnIndex("sex"));
System.out.println("name=" +name+" sex="+sex);
}
}
}
帮住类
package com.example.day03_sqlite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
public MySQLiteOpenHelper(Context context) {
//设置数据库的名称和版本号
super(context, "1409L", null, 1);
}
// 数据库创建
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table student(id integer primary key autoincrement,name varchar(20), sex char(5))");
}
// 数据库升级,通过比对两个版本号的大小判断是否需要升级
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
改变哪一个表,要添加的字段
db.execSQL(“alter table student add age varchar(6)”);
}
}