SQLite数据库的创建与使用

(1)首先创建一个类继承SQLiteOpenHelper,重写父类中super(),onCreate(),onUpgrade()方法,

        在super()方法中声明数据库的content(上下文),databaseName(数据的名称),factory(游标工厂),version(版本);

        在onCreate()方法中可以创建一张表;

        在onUpgrade()方法中可以更新数据库的版本。

       

public class PersonDB extends SQLiteOpenHelper {
    public PersonDB(Context context){
        super(context,"person.db",null,5);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("create table person (id integer primary key autoincrement,name varchar(20),number varchar(20))");
        System.out.print("数据库创建成功");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
        System.out.println("数据库升级成功");
    }
}

(2)创建javaBean用于存储数据

       作用:用于保存数据库中的值。(注意:该类中的变量应该和数据库中的字段相同)

       在该类中通过变量设置setXXX()和getXXX()方法(根据需求也可增加需要的方法);

public class Person {
    private  int id;
    private  String name;
    private String number;
    public Person(){}

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", number='" + number + '\'' +
                '}';
    }
}

 

 (3)在MainActivity中可以通过BUTTON增加监听对数据库进行操作 增,删,改,查(可以将查询的结果通过ListView吧数据显示到手机界面上)。

        <1>在xml文件增加需要的控件,在MainActivity中通过findViewById()的方法找到xml中的控件

b1=(Button)findViewById(R.id.b1);

b2=(Button)findViewById(R.id.sele);

        <2>在MainActivity中声明数据库(this指的是上下文环境)

helper=new PersonDB(this);

       <3>操作数据库(注意:每次操作完数据库后应将数据库关闭通过close()方法)

             增:给button设置监听事件

                  通过SQLiteDataBase得到一个可读写的数据库

SQLiteDatabase db=helper.getWritableDatabase();

                 编写SQL语句

Long i=  db.insert(String table,String nullColumnHack,ContentValues values);

                通过SQL语句的返回值判断操作是否成功

 if(i==-1){
                    Toast.makeText(MainActivity.this, "插入失败", Toast.LENGTH_SHORT).show();
                }
                else{
                    Toast.makeText(MainActivity.this, "插入成功", Toast.LENGTH_SHORT).show();
                }
}

               最后关闭数据库

db.close();

          删,改 步骤:同上

 

          查:给button设置监听事件

                  通过SQLiteDataBase得到一个可读或者可读写的数据库

SQLiteDatabase db=helper.getReadableDatabase();
SQLiteDatabase db=helper.getWritableDatabase();

                  编写SQL语句,将查询到的将数据存进javaBean中,定义一个内部类继承BaseAdapter适配器,最终通过ListView将结果显示到控制台

        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SQLiteDatabase db=helper.getWritableDatabase();
                Cursor cursor= db.query("Person", null, null, null, null, null, null);
                list_infor=new ArrayList<Person>();
                while(cursor.moveToNext()){
                    Person infor=new Person();
                    int id=cursor.getInt(cursor.getColumnIndex("id"));
                    String name=cursor.getString(cursor.getColumnIndex("name"));
                    String number=cursor.getString(cursor.getColumnIndex("number"));
                    infor.setId(id);
                    infor.setName(name);
                    infor.setNumber(number);
                    list_infor.add(infor);
                }
                cursor.close();
                db.close();

                lv.setAdapter(new MyAdapter());
            }
        });
    }
    private class MyAdapter extends BaseAdapter {

        @Override
        public int getCount() {
            return list_infor.size();
        }

        @Override
        public Object getItem(int i) {
            return null;
        }

        @Override
        public long getItemId(int i) {
            return 0;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            TextView tv=new TextView(MainActivity.this);
            tv.setText(list_infor.get(i).toString());
            return tv;
        }
    }

 

posted @ 2016-07-14 00:06  关键字  阅读(1408)  评论(0编辑  收藏  举报