android链接SQLite的作业

android链接SQLite的作业

先上图看看结果:


分为5个java和2个xml

activity_main.xml

···java

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/add"
        android:text="增加一条纪录"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/del"
        android:text="删除第一条记录"/>
</LinearLayout>
<ListView
    android:id="@+id/list_item"
    android:layout_width="wrap_content"
android:layout_height="wrap_content"></ListView>

item.xml

···java

就只放一个TextView
然后是5个java的部分了,分别用于
1.创建数据库
2.创建适配器
3.创建一个person的信息封装
4.一个查询删除插入的方法集
5.主程序运行

1.创建数据库

···java
public class MyDBHelper extends SQLiteOpenHelper {
public MyDBHelper(Context context) {
super(context,"mydb.db", null,1);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String sql="create table person(id integer primary key autoincrement,name varchar(64))";
    db.execSQL(sql);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("droptableifexists mydb");
    onCreate(db);
}

}

2.创建适配器

public class MyCursorAdapter extends CursorAdapter {
    public MyCursorAdapter(Context context, Cursor cursor) {
        super(context, cursor,0);
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {

        return LayoutInflater.from(context).inflate(R.layout.item_person, viewGroup, false);//
    }
    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        TextView name = (TextView) view.findViewById(R.id.tv_name);
        name.setText(cursor.getString(cursor.getColumnIndex("name")));
    }
}
##3.创建一个person的信息封装
···java
public class Person implements Serializable {
private  int id;
    private  String name;

    public Person() {
    }

    public Person(String name) {
        this.name = name;
    }

    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;
    }
}
##4.一个查询删除插入的方法集
···java
ublic class PersonDAO  {
    private ListView lv;
    private Context context; // Activity上下文
    private MyDBHelper helper; //创建、升级、打开数据库
    private SQLiteDatabase db;
    private SimpleAdapter simpleAdapter;


    public PersonDAO(Context context) {
        helper = new MyDBHelper(context);
    }

    public void insert(Person person) {
        db = helper.getWritableDatabase();
        String sql = "insert into person(name) values(?)";
        db.execSQL(sql, new Object[]{
                person.getName()});


    }
    public Cursor selectAll() {
        db =helper.getReadableDatabase();
        Cursor cursor= db.query("person",null,null,null,null,null,null);
        return cursor;
    }
    public List<Person> selectAllPersons() {
        db = helper.getReadableDatabase();
//
        Cursor cursor = db.rawQuery("select * from person", null);
        // 将所有的数据放入List集合
        // 1. 创建一个List对象
        List<Person> persons = new ArrayList<>();

        // 2. 循环cursor
        if(cursor.moveToFirst()) {
            do {
                Person person = new Person();
                person.setId(cursor.getInt(cursor.getColumnIndex("id")));
               person.setName(cursor.getString(cursor.getColumnIndex("name")));


               persons.add(person);
            }while(cursor.moveToNext());
        }
        return persons;


    }
    public void delete(int id) {
        db = helper.getWritableDatabase();
        db.delete("person", "id=?", new String[] {String.valueOf(id)});

        String sql = "delete from person where id=?";
        db.execSQL(sql, new Object[]{id});
    }

}
##5.主程序运行
···java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    public Boolean flag;
    private ListView lv;
    private Person person;
    private Cursor cursor;
    private Button btn_add;
    private Button btn_del;
    private EditText edit;
    private PersonDAO personDAO;
    private MyCursorAdapter adapter;
    private SimpleAdapter simpleAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.list_item);
        edit = (EditText) findViewById(R.id.edit);
        btn_add = (Button) findViewById(R.id.add);
        btn_del = (Button) findViewById(R.id.del);
        btn_add.setOnClickListener(this);
        btn_del.setOnClickListener(this);
         PersonDAO personDAO=new PersonDAO(this);
        cursor=personDAO.selectAll();

            adapter=new MyCursorAdapter(this,cursor);
            lv.setAdapter(adapter);


    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.add:

                String name = edit.getText().toString();
                PersonDAO personDAO = new PersonDAO(this);

                if (true) {

                    Person person = new Person(name);
                    personDAO.insert(person);
                    cursor=personDAO.selectAll();
                    adapter.changeCursor(cursor);//
                } else {

                    if (person != null) {
                        person.setName(name);


                    }
                }

                Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();

            case R.id.del:

                String person2= edit.getText().toString();
                PersonDAO personDAO2 = new PersonDAO(this);
                if(person!=null){            //判断记录是否为空,如果是空的话会提示记录为空
                    cursor.moveToFirst();//数据的第一行
                    person=new Person();
                    person.setId(cursor.getInt(cursor.getColumnIndex("_id")));
                    personDAO2.delete(person.getId());//调用delete方法删除第一条记录
                   personDAO = new PersonDAO(this);
                    cursor = personDAO.selectAll();
                    adapter = new MyCursorAdapter(this, cursor);
                   lv.setAdapter(adapter);
                    Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
                }
                Toast.makeText(this,"记录为空",Toast.LENGTH_SHORT).show();

                break;

              }
    }





}![](http://images2015.cnblogs.com/blog/1127043/201705/1127043-20170515132244275-523635844.png)
posted @ 2017-05-15 13:22  王子轩1  阅读(231)  评论(0编辑  收藏  举报