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. JDK的版本历史

    JDK1.5: 2004年发布----2006年结束 JDK1.6 2006年发布-----2010年结束 一看吓我一条,开始接触JDK都已经是2010年下半年了,可是那是学的就是1.5版本,知道工作 ...

  2. Oracle 11g新参数USE_LARGE_PAGES与AMM使用 (转载)

    在之前的文章(http://space.itpub.net/17203031/viewspace-774843)中,笔者介绍了如何在Linux 2.6内核中配置HugePage以及AMM与其的不兼容性 ...

  3. js定时器、高亮修改单元格背景色

    window.setInterval() 功能:按照指定的周期(以毫秒计)来调用函数或计算表达式. 语法:setInterval(code,millisec) 解释:code:在定时时间到时要执行的J ...

  4. Hive基础之自定义封装hivefile命令

    存在的问题:当把hql写到shell中,不方便阅读:但把hql写到文件中,又传递不了参数:怎么办呢? 自定义hivefile 执行方式形如: 第一个参数为要执行的hql文件,后续的参数为要替换的key ...

  5. 树状数组POJ2352星星

    http://poj.org/problem?id=2352 这道题的题意对于住学者应该比较难理解,但是如果弄明白他的意思的话,你就会发现这就是赤裸裸的树状数组,哎,欺负我不懂是吧,当时读题读啦好久, ...

  6. Android 在程序中动态添加 View 布局或控件

    有时我们需要在程序中动态添加布局或控件等,下面用程序来展示一下相应的方法: 1.addView 添加View到布局容器 2.removeView 在布局容器中删掉已有的View 3.LayoutPar ...

  7. opencv编程解决warning C4003: “max”宏的实参不足

    忘了把程序出错的代码附上了,运行修改好的程序才发现的.只好把问题的代码大致写一下了: warning C4003: “min”宏的实参不足 error C2589: “(”:“::”右边的非法标记 e ...

  8. css+js+html基础知识总结

    css+js+html基础知识总结 一.CSS相关 1.css的盒子模型:IE盒子模型.标准W3C盒子模型: 2.CSS优先级机制: 选择器的优先权:!important>style(内联样式) ...

  9. phpDoc使用说明

    技术文档可以使人们更好得使用他人的代码库,然而,作为开发人员,编写文档确是一件让人头疼的事情.PHPDoc是PHP文档注释的一个标准,它可以实现为代码生成API文档. PHPDoc注释规范: 块注释的 ...

  10. 农村的“无为教育” (FW)

    农村的“无为教育” 发布时间:2009年11月5日 11时33分 “以孩子影响孩子”,准确地说,是以偏远乡村贫困家庭的进取孩子,影响城市有相当收入的“问题孩子”.有两点值得注意,一是农村孩子影响城市孩 ...