public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 打开或者创建数据库
SQLiteDatabase db = null;// 依赖于db执行数据库语法
db = openOrCreateDatabase("tedu.db", MODE_PRIVATE, null);
// 创建数据表
// createTable(db);//创建时调用
// 增加数据
// insert(db);//增加时调用
// newInsert(db);
// 删除数据
// delete(db);//删除时调用
// newDelete(db);
// 修改数据
// update(db);//修改数据时调用
// newUpdate(db);
// 查询数据
//newQuery(db);
}
public void newUpdate(SQLiteDatabase db){
String table="person";
ContentValues values=new ContentValues();
values.put("name", "Jack");
values.put("age", 18);
String whereClause="id=?";//where子句,表示要操作的位置
String[] whereArgs={3+""};//
int affectedrows = db.update(table, values, whereClause, whereArgs);
Log.i("info", "受影响行数:"+affectedrows);
db.close();
}
public void newDelete(SQLiteDatabase db){
String table="person";//数据表
String whereClause="name=?";//where子句
String name="JSON";
String[] whereArgs={name};
//返回受影响的行,为int类型
int rows=db.delete(table, whereClause, whereArgs);
Log.d("TGA", "rows = "+rows);
db.close();
}
public void newInsert(SQLiteDatabase db) {
String table = "person";
String nullColumnHack = null;
ContentValues values = new ContentValues();
values.put("name", "KUK");// 增加数据,用key和value
values.put("age", 26);// 增加数据,用key和value
values.put("gender", 1);// 增加数据,用key和value
long id = db.insert(table, nullColumnHack, values);
Log.d("TAG", "ID = " + id);
db.close();
}
// 平时推荐使用
public void createTable(SQLiteDatabase db) {
// 创建数据表
String sql = "create table dtudents(name varchar(16) not null unique, age integer, gender integer, class integer);";
// 同一张表中的id只会分配一次
sql = "create table person(id integer primary key autoincrement, age integer, name varchar(16) not null unique, gender integer);";
db.execSQL(sql);
// db.close();//对数据进行操作的时候不能关闭数据表,不执行这段代码时,打开或者关闭不影响其他执行
}
// 插入数据或增加数据,一次只能增加一个数据
public void insert(SQLiteDatabase db) {
String sql = "";// 需要其语法对其引用和注入
sql = "insert into person (name, gender, age) values ('Black', 1, 21)";
db.execSQL(sql);
sql = "insert into person (gender, name, age) values (1, 'JSON', 25)";
db.execSQL(sql);
sql = "insert into person (age, name) values (15, 'Billy')";
db.execSQL(sql);
sql = "insert into person (age, name, gender) values (18, 'jeo', 0)";
db.execSQL(sql);
db.close();
}
public void delete(SQLiteDatabase db) {
String sql = "delete from students where name = 'KUK'";
// 同一个字符串被重新赋值,执行下面的语句
sql = "delete from person where id=4";
db.execSQL(sql);
db.close();
}
public void update(SQLiteDatabase db) {
String sql = "update person set age=15 where id=1 or id=3";
db.execSQL(sql);
db.close();
}
public void newQuery(SQLiteDatabase db) {
// The table name to compile the query against.针对数据表进行编译
String table="person";
/*
* A list of which columns to return. Passing null will return all
* columns, 返回行数(要查询的字段列表),如果是null值,返回所有行数(表示查询所有字段)如,String[]
* columns=null; which is discouraged to prevent reading data from
* storage that isn't going to be used
*/
String[] columns = {"name", "age", "gender", "id"};
String selection = "name=?";// where子句,参考delete()方法的参数whereClause
String jack = "jack";;
String[] selectionArgs = {jack};// 参考delete()方法的参数whereArgs
String groupBy = null;// 无视
String having = null;// 无视
String orderBy = null;// (order by子句,不需要填写“order by”关键字)
Cursor cursor = db.query(table, columns, selection, selectionArgs,
groupBy, having, orderBy);
// --- 遍历方式1 ---
/**
*Move the cursor to the first row.移动光标到第一行
*This method will return false if the cursor is empty.如果光标为空,返回false
*@reture 返回值为是否移动成功
*/
// while(c.moveToNext()) {
//
// }
// --- 遍历方式2 ---
// if(c.moveToFirst()) {
// do {
//
// } while(c.moveToNext());
// }
// --- 遍历方式3 ---
//for(初始条件;终止条件;每次变动的条件){}
for (cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext()) {
Log.i("tag", "------------------------------------------");
Log.i("tag", "name = "+cursor.getString(cursor.getColumnIndex("name")));
Log.i("tag", "id = "+cursor.getInt(cursor.getColumnIndex("id")));
Log.i("tag", "gender = "+cursor.getInt(cursor.getColumnIndex("gender")));
Log.i("tag", "age"+cursor.getInt(cursor.getColumnIndex("age")));
}
if (!cursor.isClosed()) {
cursor.close();
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 打开或者创建数据库
SQLiteDatabase db = null;// 依赖于db执行数据库语法
db = openOrCreateDatabase("tedu.db", MODE_PRIVATE, null);
// 创建数据表
// createTable(db);//创建时调用
// 增加数据
// insert(db);//增加时调用
// newInsert(db);
// 删除数据
// delete(db);//删除时调用
// newDelete(db);
// 修改数据
// update(db);//修改数据时调用
// newUpdate(db);
// 查询数据
//newQuery(db);
}
public void newUpdate(SQLiteDatabase db){
String table="person";
ContentValues values=new ContentValues();
values.put("name", "Jack");
values.put("age", 18);
String whereClause="id=?";//where子句,表示要操作的位置
String[] whereArgs={3+""};//
int affectedrows = db.update(table, values, whereClause, whereArgs);
Log.i("info", "受影响行数:"+affectedrows);
db.close();
}
public void newDelete(SQLiteDatabase db){
String table="person";//数据表
String whereClause="name=?";//where子句
String name="JSON";
String[] whereArgs={name};
//返回受影响的行,为int类型
int rows=db.delete(table, whereClause, whereArgs);
Log.d("TGA", "rows = "+rows);
db.close();
}
public void newInsert(SQLiteDatabase db) {
String table = "person";
String nullColumnHack = null;
ContentValues values = new ContentValues();
values.put("name", "KUK");// 增加数据,用key和value
values.put("age", 26);// 增加数据,用key和value
values.put("gender", 1);// 增加数据,用key和value
long id = db.insert(table, nullColumnHack, values);
Log.d("TAG", "ID = " + id);
db.close();
}
// 平时推荐使用
public void createTable(SQLiteDatabase db) {
// 创建数据表
String sql = "create table dtudents(name varchar(16) not null unique, age integer, gender integer, class integer);";
// 同一张表中的id只会分配一次
sql = "create table person(id integer primary key autoincrement, age integer, name varchar(16) not null unique, gender integer);";
db.execSQL(sql);
// db.close();//对数据进行操作的时候不能关闭数据表,不执行这段代码时,打开或者关闭不影响其他执行
}
// 插入数据或增加数据,一次只能增加一个数据
public void insert(SQLiteDatabase db) {
String sql = "";// 需要其语法对其引用和注入
sql = "insert into person (name, gender, age) values ('Black', 1, 21)";
db.execSQL(sql);
sql = "insert into person (gender, name, age) values (1, 'JSON', 25)";
db.execSQL(sql);
sql = "insert into person (age, name) values (15, 'Billy')";
db.execSQL(sql);
sql = "insert into person (age, name, gender) values (18, 'jeo', 0)";
db.execSQL(sql);
db.close();
}
public void delete(SQLiteDatabase db) {
String sql = "delete from students where name = 'KUK'";
// 同一个字符串被重新赋值,执行下面的语句
sql = "delete from person where id=4";
db.execSQL(sql);
db.close();
}
public void update(SQLiteDatabase db) {
String sql = "update person set age=15 where id=1 or id=3";
db.execSQL(sql);
db.close();
}
public void newQuery(SQLiteDatabase db) {
// The table name to compile the query against.针对数据表进行编译
String table="person";
/*
* A list of which columns to return. Passing null will return all
* columns, 返回行数(要查询的字段列表),如果是null值,返回所有行数(表示查询所有字段)如,String[]
* columns=null; which is discouraged to prevent reading data from
* storage that isn't going to be used
*/
String[] columns = {"name", "age", "gender", "id"};
String selection = "name=?";// where子句,参考delete()方法的参数whereClause
String jack = "jack";;
String[] selectionArgs = {jack};// 参考delete()方法的参数whereArgs
String groupBy = null;// 无视
String having = null;// 无视
String orderBy = null;// (order by子句,不需要填写“order by”关键字)
Cursor cursor = db.query(table, columns, selection, selectionArgs,
groupBy, having, orderBy);
// --- 遍历方式1 ---
/**
*Move the cursor to the first row.移动光标到第一行
*This method will return false if the cursor is empty.如果光标为空,返回false
*@reture 返回值为是否移动成功
*/
// while(c.moveToNext()) {
//
// }
// --- 遍历方式2 ---
// if(c.moveToFirst()) {
// do {
//
// } while(c.moveToNext());
// }
// --- 遍历方式3 ---
//for(初始条件;终止条件;每次变动的条件){}
for (cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext()) {
Log.i("tag", "------------------------------------------");
Log.i("tag", "name = "+cursor.getString(cursor.getColumnIndex("name")));
Log.i("tag", "id = "+cursor.getInt(cursor.getColumnIndex("id")));
Log.i("tag", "gender = "+cursor.getInt(cursor.getColumnIndex("gender")));
Log.i("tag", "age"+cursor.getInt(cursor.getColumnIndex("age")));
}
if (!cursor.isClosed()) {
cursor.close();
}
}
}