andriod增、删、改、查
将数据库的增删改查单独放进一个包
*/
package com.itheima28.sqlitedemo.dao;
import java.util.ArrayList;
import java.util.List; import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import com.itheima28.sqlitedemo.dao.entities.Person;
import com.itheima28.sqlitedemo.db.PersonSQliteOpenHelper;
public class PersonDao {//谁调用我这个操作的包,就传入自己的对象
private PersonSQliteOpenHelper mOpenHelper; //数据库的帮助类对象 public PersonDao(Context context){ //构造函数
mOpenHelper =new PersonSQliteOpenHelper(context);
}
//插入操作
public void insert(Person person){
//首先连接数据库 这个操作class PersonDao已经做了,用其对象mOpenHelper下的方法
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
//判断数据库是否打开
if(db.isOpen()){ //如果数据库打开,执行添加的操作
//执行添加到数据库的操作 //Object传进来是什么,就是什么,相应前面是什么就写成?
db.execSQL("insert into person(name,age) values(?,?);",new Object[]{person.getName(),person.getAge()});
db.close();//数据库关闭
}
}
//根据id删除数据
public void delete(int id) {
SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得可写的数据库对象
if(db.isOpen()){ //如果数据库打开,执行下列操作 //直接传进来id。integer是一个对象类型,int不是。所以不行。
db.execSQL("delete from person where _id=?;",new Integer[]{id});//
db.close();
}
}
//更新
public void updata(int id,String name){
SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得可写的数据库对象
if(db.isOpen()){
db.execSQL("updata person set name =? where _id = ?;",new Object[]{name,id});
}
db.close();
}
//查询所有
public List<Person> queryALL(){
SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得只读的数据库对象
if(db.isOpen()){
Cursor cursor = db.rawQuery("select * from person;", null); //查询得到“Cursor结果集”
if(cursor !=null && cursor.getCount()>0){//查询集大于0
List<Person> personList = new ArrayList<Person>();//创建一个集合personList
while(cursor.moveToNext()){ //表的游标从上到下移动
int id =cursor.getInt(0);//取第0列---id
String name = cursor.getString(1);//取第1列---name
int age = cursor.getInt(2);//取第2列---age
personList.add(new Person(id,name,age));//将取得的数据装入集合personList
}
db.close();
return personList;//返回这个集合
}
db.close();
}
return null;
}
//查询一个,例如id
public Person queryItem(int id){ //Person类型
SQLiteDatabase db = mOpenHelper.getWritableDatabase();//获得只读的数据库对象
if(db.isOpen()){ //因为 rawQuery(String, String[])类型所以通过id+""把int id弄成String类型
Cursor cursor= db.rawQuery("select _id,name,age from person where _id=?;",new String[]{id+""} );
if(cursor !=null && cursor.moveToFirst()){//moveToFirst首次找到
int _id = cursor.getInt(0);//得到id
String name= cursor.getString(1);//得到name
int age = cursor.getInt(2);//得到年龄
db.close();
return new Person(_id,name,age);
}
}
return null;
}
}
andriod增、删、改、查的更多相关文章
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
- 简单的php数据库操作类代码(增,删,改,查)
这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...
- MongoDB增 删 改 查
增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...
- Go语言之进阶篇mysql增 删 改 查
一.mysql操作基本语法 1.创建名称nulige的数据库 CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ...
随机推荐
- .Net 配置文件--继承ConfigurationSection实现自定义处理类处理自定义配置节点
除了使用继承IConfigurationSectionHandler的方法定义处理自定义节点的类,还可以通过继承ConfigurationSection类实现同样效果. 首先说下.Net配置文件中一个 ...
- 【基础】Html跨域跳转问题整理
今天遇到一个问题,是有关 跨域跳转问题,涉及到知识比较基础. 具体问题是: A站点的 PageA (Post数据)到 B站点的 PageB,PageB接受到后Redirect到B站的 PageC: ...
- Android读写SD卡
SD卡的读写是我们在开发Android 应用程序过程中最常见的操作.下面介绍SD卡的读写操作方式: 1. 获取SD卡的根目录 String sdCardRoot = Environment.getEx ...
- ActiveReports 报表应用教程 (1)---Hello ActiveReports
在开始专题内容之前,我们还是了解一下 ActiveReports 是一款什么产品:ActiveReports是一款在全球范围内应用非常广泛的报表控件,以提供.NET报表所需的全部报表设计功能领先于同类 ...
- [转]PDO防注入原理分析以及使用PDO的注意事项
原文:http://zhangxugg-163-com.iteye.com/blog/1835721 好文章不得不转. 我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答 ...
- C语言回滚(一)
//用循环计算输入的字符数 #include<stdio.h> #include<string.h> #include<stdlib.h> int main(){ ...
- [Xamarin.Android] 发布NuGet套件
[Xamarin.Android] 发布NuGet套件 前言 在Xamarin中,可以将自己开发的项目包装成为NuGet套件发布至NuGet Server,来提供其他开发人员使用.本篇介绍如何封装并发 ...
- Visual Studio添加dll程序集引用操作步骤
Visual Studio 中添加引用的操作: 在“解决方案资源管理器”中,先右击项目图标,在弹出菜单选择“添加引用...” 然后在弹出的窗口中选择所要添加的选项,点击确定就可以了. 原文:http: ...
- 移位操作<<和>>,是逻辑数字上的移动(和大端小端无关)
问题描述 这几天帮同事调试DSP TMS320F28335,这鬼东西蛋疼死了.char是16bit的,16位就是他的最小内存单元.但是PC机串口发过来的有8bit的数据,然后转换就出问题. 一开始不知 ...
- javascript数组浅谈2
上次说了数组元素的增删,的这次说说数组的一些操作方法 join()方法: ,,] arr.join("_") //1_2_3 join方法会返回一个由数组中每个值的字符串形式拼接而 ...