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

通过Sql语句控制SQLite数据库增删改查的更多相关文章

  1. 通过API函数来控制SQLite数据库增删改查

    person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法. package com.xh.tx.dao; import and ...

  2. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  3. Android SQLite 数据库 增删改查操作

    Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...

  4. MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

    二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...

  5. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  6. IOS sqlite数据库增删改查

    1.简单介绍 简单封装sqlite数据库操作类 BaseDB 用于完毕对sqlite的增删改查.使用前先导入libsqlite3.0.dylib库 2.BaseDB.h // // BaseDB.h ...

  7. 使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)

    在没有使用SQLite这种轻量级的数据库之前,只使用过Sqlserver2008进行数据的增删改查,公司使用的是大型的ORACLE数据库,还没有真正的会使用它.那时候觉得数据库很庞大,然而遇到SQLi ...

  8. SQLite数据库增删改查操作

    一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字).TEXT(字符串 ...

  9. Android SQLite数据库增删改查操作

    一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符 ...

随机推荐

  1. Mingyang.net:hibernate.hbm2ddl.auto配置详解【转】

    原文地址:http://www.cnblogs.com/feilong3540717/archive/2011/12/19/2293038.html hibernate.cfg.xml 中hibern ...

  2. Error Dropping Database (Can't rmdir '.test\', errno: 17)

    MySql 删除数据库出错:Can't rmdir '.\test\', errno: 17 到test数据下的所在的目前data\test目录,删除掉所有的文件后,就可以删除数据了

  3. [HDU 2126] Buy the souvenirs (动态规划)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2126 题意:给你n个物品,m元钱,问你最多能买个多少物品,并且有多少种解决方案. 一开始想到的是,先解 ...

  4. Cocos2d-x 3.0 事件系统【转】

    事件系统,是一个软件的核心组成部分.从小处讲它是应用程序内部各模块交互的设计模式,从大处讲,它是软件架构的组成模块.在现代软件开发中,操作系统通常通过一些预定义的事件,告知应用程序发生的一些事情如用户 ...

  5. EndNote文献管理

    一直想写个博客,但是一直没有好好坐下来对自己工作进行一个梳理.从今天开始吧,争取多写一点. 今天,先介绍一下科技论文写作中经常使用的一款软件EndNote,这个软件,掌握它的使用方法后会觉得很方便:但 ...

  6. Jquery获得服务器控件的方法

    由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法: 服务器控件代码: <asp:TextBox ID=" ...

  7. [linux]查看文件编码和编码转换

    方法一:file filename 方法二:在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码 ...

  8. JS实现联想输入(二)

    JS实现联想输入(一)是主要针对单列结构的JSON格式的数据的,如果想满足多列结构的JSON格式的数据,也是非常容易的,其解决方案有至少有三种选择: 1:在后台Action方法中将多列的值拼成单列结构 ...

  9. 过河-状压DP

    http://www.luogu.org/problem/show?pid=1052 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上 ...

  10. 如何在后台动态生成ASPxCheckBoxList标签并循环(数据调用存储过程)

    DataTable dt_attrname = new DataTable(); DataTable dt_valuename = new DataTable(); dt_valuename = go ...