SQLite初识(八)数据库--查询数据
写一个按钮执行查询数据的操作 private void queryData() {
String querySql="select * from Student where _id=?";
String []args=new String[]{"1"};
// 返回值是一个Cursor对象
Cursor cursor= mSQLiteDatabase.rawQuery(querySql,args);
while (cursor.moveToNext()){
//真正的获取数据
int id =cursor.getInt(0);
String name=cursor.getString(1);
Log.i("SQLITE","id"+id+"name"+name);
}
}
我们指定查询id=1; 如果要查询所有呢 直接知道列名称,也可以全部打印 int column_id=cursor.getColumnIndex("_id");
int id=cursor.getInt(column_id);
int column_name=cursor.getColumnIndex("name");
String name=cursor.getString(column_name);
Log.i("SQLITE","id"+id+"name"+name);
刚才我们用的是sql语法查询的,同样android语法也是可以查询 /** * 用 android提供的方法查询 */
private void queryData2() {
Cursor cursor= mSQLiteDatabase.query("Student",null,null);
while (cursor.moveToNext()){
int id=cursor.getInt(cursor.getColumnIndex("_id"));
String name=cursor.getString(cursor.getColumnIndex("name"));
Log.i("SQLITE","id"+id+"name"+name);
}
cursor.close();
}
如果用倒序排列直接修改查询语句 Cursor cursor= mSQLiteDatabase.query("Student","_id desc");
总结一下 public class MainActivity extends AppCompatActivity {
Button mButton,btn_updata,btn_delete,btn_query;
SQLiteDatabase mSQLiteDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第四个参数,版本号
MyOpenHelper myOpenHelper=new MyOpenHelper(getApplicationContext(),"mydb",1);
//两种获取数据库的方法
mSQLiteDatabase= myOpenHelper.getReadableDatabase();
// myOpenHelper.getWritableDatabase();
initView();
initClick();
}
private void initView() {
mButton=(Button)findViewById(R.id.btn_insert);
btn_updata=(Button)findViewById(R.id.btn_updata);
btn_delete=(Button)findViewById(R.id.btn_delete);
btn_query=(Button)findViewById(R.id.btn_query);
}
private void initClick() {
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
insertData();
}
});
btn_updata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateData();
}
});
btn_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deleteData();
}
});
//查询
btn_query.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 用数据库语言查询
// queryData();
// 用Android提供的方法查询
queryData2();
}
});
}
/** * 用 android提供的方法查询 */
private void queryData2() {
Cursor cursor= mSQLiteDatabase.query("Student","_id desc");
while (cursor.moveToNext()){
int id=cursor.getInt(cursor.getColumnIndex("_id"));
String name=cursor.getString(cursor.getColumnIndex("name"));
Log.i("SQLITE","id"+id+"name"+name);
}
cursor.close();
}
/** *用数据库语言查询数据 */
private void queryData() {
String querySql="select * from Student";
// String []args=new String[]{"1"};
// 返回值是一个Cursor对象
Cursor cursor= mSQLiteDatabase.rawQuery(querySql,null);
while (cursor.moveToNext()){
//真正的获取数据
// int id =cursor.getInt(0);
// String name=cursor.getString(1);
// Log.i("SQLITE","id"+id+"name"+name);
int column_id=cursor.getColumnIndex("_id");
int id=cursor.getInt(column_id);
int column_name=cursor.getColumnIndex("name");
String name=cursor.getString(column_name);
Log.i("SQLITE","id"+id+"name"+name);
}
cursor.close();
}
/** * 删除数据 */
private void deleteData() {
// String deleteSql="delete from Student Where _id = ?";
// Object[] objs=new Object[]{"3"};
// mSQLiteDatabase.execSQL(deleteSql,objs);
mSQLiteDatabase.delete("Student","_id=?",new String[]{"7"});
}
/** * 修改数据 */
private void updateData() {
// String updateSql="update Student set name=?,age=? where _id=?";
// Object[] objs=new Object[]{"赵四",30,"1"};
// mSQLiteDatabase.execSQL(updateSql,objs);
ContentValues contentValues=new ContentValues();
contentValues.put("age",20);
mSQLiteDatabase.update("Student",contentValues,new String[]{"7"});
}
/** * 插入数据 */
private void insertData() {
// String name="李四";
// int age =21;
// String address="北京";
// String insertSql="insert into Student(name,age,address)values('feng',20,'xian')";
// String insertSql="insert into Student(name,address)values('"+name+"',"+age+",'"+address+"')";
// mSQLiteDatabase.execSQL(insertSql);
// String insertSql="insert into Student(name,address)values(?,?,?)";
// Object[]objs=new Object[]{"刘",18,"a"};
// mSQLiteDatabase.execSQL(insertSql,objs);
ContentValues values=new ContentValues();
values.put("name","小明");
values.put("age",18);
values.put("address","长沙");
//第二个参数,如果values为空,要传入一个列名,我们给类名中传入一个null
//如果values不为空的时候,第二个参数没有意义,我们传入一个null就好
mSQLiteDatabase.insert("Student",values);
}
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |