第一步 先装数据库要用到的对象创建出来 package com.example.myapplication; public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //创建构造函数 public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
//第二步 创建数据库 以及表明。
package com.example.myapplication; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class OpenHelper extends SQLiteOpenHelper { public OpenHelper(Context context) { //这三个参数分别为上下文对象,数据库名称,游标,版本号 super(context, "xjj.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table person(name varchar(50),age integer)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 注:生产环境上不能做删除操作 db.execSQL("DROP TABLE IF EXISTS person"); onCreate(db); } }
第三部增删改查的方法
package com.example.myapplication; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import java.util.ArrayList; import java.util.List; public class PersonDao { private OpenHelper helper = null; public PersonDao(Context context) { helper = new OpenHelper(context); } //实现对该数据库的增加 public void addPerson(Person person) { //获取操作实例 SQLiteDatabase db = helper.getWritableDatabase(); //此方法推荐使用 String sqlStr = "insert into person(name,age)values(?,?)"; //执行SQL语句 db.execSQL(sqlStr, new Object[]{person.getName(), person.getAge()}); //关闭数据库 db.close(); } //实现对数据库的删除 public void deletePerson(String name) { //获取数据库操作的实例 SQLiteDatabase db = helper.getWritableDatabase(); //创建SQL字符串 String sqlStr = "delete from person where name=?"; db.execSQL(sqlStr, new String[]{name}); //关闭数据库 db.close(); } //实现对数据库的修改 public void updatePerson(Person person) { //获取数据库的操作实例 SQLiteDatabase db = helper.getWritableDatabase(); //创建SQl字符串 String sqlStr = "update person set name=? where age=?"; //执行SQL语句 db.execSQL(sqlStr, new Object[]{person.getName(), person.getAge()}); //关闭数据库 db.close(); } //实现对数据库的查询 public List<Person> selectPerson() { //创建集合 List<Person> persons = new ArrayList<Person>(); //获取数据库操作实例 SQLiteDatabase db = helper.getReadableDatabase(); //创建Cursor对象 Cursor cursor = null; try { cursor = db.rawQuery("select * from person", null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); //创建Person对象 Person p = new Person(name, age); //将创建出来的Person对象添加到集合中去 persons.add(p); } } catch (Exception e) { e.printStackTrace(); } finally { //关闭相应的资源 if (cursor != null) { cursor.close(); } if (db != null) { db.close(); } } return persons; } }
最后的调用
package com.example.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import java.util.List; public class MainActivity extends AppCompatActivity { private PersonDao dao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dao = new PersonDao(this); } public void Remove(View view) { dao.deletePerson("张三0"); } public void Add(View view) { for (int i = 0; i < 10; i++) { Person person = new Person("张三" + i, 10 + i); List<Person> people = dao.selectPerson(); for (int j = 0; j < people.size(); j++) { if (people.get(j).getName().equals(person.getName()) && people.get(j).getAge() == person.getAge()) { dao.deletePerson(people.get(j).getName()); } } dao.addPerson(person); } } public void Seleted(View view) { List<Person> people = dao.selectPerson(); if (people != null && people.size() > 0) { for (int i = 0; i < people.size(); i++) { Log.i("-----------", "Seleted: " + people.get(i)); } } } public void Update(View view) { Person p=new Person("刘丹", 11); dao.updatePerson(p); } }