您的位置:首页 > 数据库

通过Sql语句控制SQLite数据库增删改查

2015-11-23 15:25 411 查看
person类属性有Intenger id,String name,Intenger age,相应的构造方法和set get方法。
package com.xh.tx.dao;
import java.util.ArrayList;

import java.util.List;
import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;
import com.xh.tx.bean.Person;

import com.xh.tx.utils.MySQLLiteHelper;
public class PersonDao

{

  private MySQLiteHelper helper;

  public PersonDao(Context context)

  {

    helper = new MySQLiteHelper(context, null, null, -1);//前者创建的时候版本已经固定了,后面的-1没作用,与前面的用Eclipse创建数据库文章相结合

  }

  /**

  * 对数据库进行添加操作

  * sql:insert into person(name,age) values('sz',20);\

  *缺陷:

  * 1. 传递参数很麻烦

  * 2. 不能有返回值

  */

  public void savePerson(Person p)

  {

    String sql = "insert into person(name,age) values(?,?);";//person是数据库中已经创建的表,具有_id,name,age属性,_id是key

    SQLiteDatabase db = helper.getWritableDatabase();

    //db代表的是一个数据库的一个连接

    if(db.isOpen())//判断数据库是否打开

    {

      db.execSQL(sql, new Object[]{p.getName(),p.getAge()}); //向数据库里面去添加一行记录,后者为bindArgs,相印的对象类型是包装类

      db.close(); //记住一定要关闭数据库的连接

    }

  }

  /**

  * 删除一个对象

  * sql:delete from person where _id = 1;

  */

  public void deletePerson(Integer id)

  {

    String sql = "delete from person where _id = ?;";

    SQLiteDatabase db = helper.getWritableDatabase();

    if(db.isOpen())

    {

      db.execSQL(sql, new Integer[]{id});

      db.close();

    }

  }

  /**

  * 修改一个对象

  * sql:update person set name ='cccc' where _id=1;

  */

  public void updatePerson(Person p)

  {

    String sql = "update person set name =? where _id=?;";

    SQLiteDatabase db = helper.getWritableDatabase();

    if(db.isOpen())

    {

      db.execSQL(sql, new Object[]{p.getName(),p.get_id()});

      db.close();

    }

  }

  /**

  * 查询所有

  */

  public List<Person> queryPerson()

  {

    String sql = "select _id,name,age from person;";

    SQLiteDatabase db = helper.getReadableDatabase();

    List<Person> list = null;

    if(db.isOpen())

    {

      Cursor cursor = db.rawQuery(sql, null); //查询

      //cursor.getCount() 查看执行sql以后返回的结果集的个数

      if(null != cursor && cursor.getCount() > 0)

      {

        list = new ArrayList<Person>();

        while(cursor.moveToNext())

        {

          Integer id = cursor.getInt(0);

          String name = cursor.getString(1);

          Integer age = cursor.getInt(2);

          list.add(new Person(id,name,age));

        }
      }
      cursor.close();
      db.close();

    }

    return list;

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: