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; } }