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. HDU 3535 【背包】

    题意: 给出n组数据,每组数据有一个类型. 0代表至少选择一个,1代表至多选择一个,2代表任意选择. 给出背包容量. 如果背包不能满足最基本的要求输出-1. 思路: 背包问题变相考察~ 当0的时候初始 ...

  2. poj 1328 Radar Installation(nyoj 287 Radar):贪心

    点击打开链接 Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 43490   Accep ...

  3. asp.net子窗体与父窗体交互

    今天在项目上遇到了这个问题,其实只是window.returnValue的简单应用,不是asp.net的专属内容.作为积累,记录一个简单的实现模型. 图1  用到的文件 从图1中我们可以看到,只用到了 ...

  4. (medium)LeetCode 221.Maximal Square

    Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...

  5. cocos2dx一个场景添加多个层

    首先创建两个layer,以下是头文件 #pragma once#include "cocos2d.h"USING_NS_CC;class BackgroundLayer : pub ...

  6. 搭建hive1.2.1图形界面

    下载:apache-hive-1.2.1-src.tar apache-hive-1.2.1-src.tar 解压,cd apache-hive-1.2.1-src/hwi 命令:jar cfM hi ...

  7. JQuery上传插件uploadify整理(Options)

    下载  现在有两个版本了,我此次使用的依然是Flash版本的,虽然现在绝大部分浏览器都兼容HTMKL5,目前位置,除了做手机项目外,一般我们项目中不允许使用HTML5标签. 属性介绍(Options) ...

  8. python 调用内部类的两种方法

    class Car:#外部类 class Door:#内部类 def open(self): print('open door') class Wheel: def run(self): print( ...

  9. Android杂谈--网络状态判断

    许多联网应用都在开始运行的时候检查当前网络状态,如果没有开启则去开启它,记录一下以前写程序时的网络检查,发现人的记忆力真是有限,总是隔段时间久忘记,所以记录下来是最好的记忆. 我们可以在一开始启动程序 ...

  10. 计数排序(Count Sort )与插入排序(Insert Sort)

    计数排序法:计数数组适用于当前数组密集的情况.例如(2,3,5,4,2,3,3,2,5,4) 方法:先找出最大值最小值,之后统计每个数出现的次数,根据次数从小到大往数组里添加 计数排序法是一种不需要比 ...