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;
这里写图片描述
这里写图片描述


如果要查询所有呢
我们修改下我们的查询条件
/**
*查询数据
*/
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);

这里写图片描述


刚才我们用的是sql语法查询的,同样android语法也是可以查询

 /**
     * 用 android提供的方法查询
     */
    private void queryData2() {
       Cursor cursor= mSQLiteDatabase.query("Student",null,null,null,null,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",null,null,null,null,null,"_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",null,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",null,null,null,null,null,"_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,"_id=?",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,age,address)values('"+name+"',"+age+",'"+address+"')";
//        mSQLiteDatabase.execSQL(insertSql);
//        String insertSql="insert into Student(name,age,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",null,values);
    }

}
发布了255 篇原创文章 · 获赞 46 · 访问量 24万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览