用SQLiteDatabase类存储数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linzhihan7410/article/details/53428699

SQLite简介:
SQLite是用C语言写的小型嵌入式关系型数据库.占用资源非常低,在嵌入式设备中,只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合.安卓系统里自带SQLite数据库.

SQLite支持任意类型的数据,常用的数据类型有:integer(整数)、real(小数)、text(文字)、blob(任意类型)、NULL(空值),我们一般可以不用考虑字段长度.

SQLite支持SQL语句

SQLiteDatabase类应用:
流程(创建数据库和关闭数据库):
一.在内存里创建SQLite数据库
二.在指定路径创建或打开SQLite数据库
三.关闭数据库

代码:
    public class SqlDataBsaeActivity extends Activity {
    private SQLiteDatabase db;  //创建SQLiteDatabase对象
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sql_data_bsae);
        //创建SQLite数据库 注意要加上异常处理
        try {
         db = SQLiteDatabase.create(null);
        }
        catch (Exception e){
            Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
        }
    }

    @Override   //在关闭页面的时候
    protected void onDestroy() {
        db.close();         //关闭数据库
        super.onDestroy();
    }
流程(对SQLite数据库进行增、删、改、查):
    一.创建表
    二.添加数据
    三.删除数据
    四.修改数据
    五.查询数据
(UI设计:一个功能为一个Button,使用LinearLayout布局,android:orientation="vertical")
代码:
        //创建表
        public void sqlDataBaseOnClick(View v){
        try {
            //sql语句:创建一个xueshengbiao 参数:id为INTEGER PRIMARY KEY(整形组键) name 为text类型并且不能为null,chengshi为text类型 
            String sql = "create table xuesheng(id INTEGER PRIMARY KEY,name text NOT NULL,chengshi text)";
            //传入sql语句
            db.execSQL(sql);
        }catch (Exception e){
            Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
        }
        //提示
        Toast.makeText(getApplicationContext(),"Create Table Success!!",Toast.LENGTH_SHORT).show();
    }
        //添加数据
        public void addDataOnClick(View v){
        try{
            //sql语句:添加一个数据到xuesheng表 values为数据存入格式,?为转义符
            String addSql = "insert into xuesheng(name,chengshi) values(?,?)";
            db.execSQL(addSql,new Object[]{"Tom","Shanghai"});
        }catch (Exception e){
            Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
        }
        //提示
        Toast.makeText(getApplicationContext(),"Add Data Success!!!",Toast.LENGTH_SHORT).show();
    }
        //删除数据
        public void delDataOnClick(View v){
        try{
            //sql语句:删除xuesheng里,id为2的数据
            String delSql = "delete from xuesheng where id=2";
            db.execSQL(delSql);
        }catch (Exception e){
            Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
        }
        //提示
        Toast.makeText(getApplicationContext(),"Delete Data Success!!!",Toast.LENGTH_SHORT).show();
    }
        //更新数据
        public void updataDataOnClick(View v){
        try{
            //sql语句:设置xuesheng表里id为2的数据的name属性为Joy
            String updSql = "update xuesheng set name='Joy' where id=2";
            db.execSQL(updSql);
        }catch (Exception e){
            Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
        }
        //提示
        Toast.makeText(getApplicationContext(),"Updata Data Success!!!",Toast.LENGTH_SHORT).show();
    }
        //查询
        public void selectDataOnClick(View v){
        String data = "";
        try{
            //sql语句查询表xuesheng
            //也可以做部分查询 例如查询name "select * from xuesheng where name=?"
            //查询张三这个name的数据的属性 Cursor c=shujuku.rawQuery(sql, new Object[]{"张三"});  
            String selql = "select * from xuesheng";
            //查询所有数据,null代表所有数据
            Cursor c = db.rawQuery(selql,null);
            //移到表的第一行数据
            c.moveToFirst();
            for(int i = 0; i<c.getCount(); i++){            //循环表的所有行
                String id = c.getString(c.getColumnIndex("id"));    //获得当前行列名为id的数据
                String name = c.getString(c.getColumnIndex("name"));//获得当前行列名为name的数据
                String chengshi = c.getString(c.getColumnIndex("chengshi"));//获得当前行列名为chengshi的数据
                c.moveToNext();                             //移到下一行数据
                data += id+" "+name+" "+chengshi+"\n";      //处理得到的数据
            }
        }catch (Exception e){
            Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
        }
        //把数据通过消息显示出来
        Toast.makeText(getApplicationContext(),data,Toast.LENGTH_SHORT).show();
    }

猜你喜欢

转载自blog.csdn.net/linzhihan7410/article/details/53428699