通过Sql语句控制SQLite数据库增删改查
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数据库增删改查的更多相关文章
- 通过API函数来控制SQLite数据库增删改查
person类属性有Intenger id,String name,Intenger age,相应的构造方法和set get方法. package com.xh.tx.dao; import and ...
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
- Android SQLite 数据库 增删改查操作
Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...
- MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存
二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...
- IOS sqlite数据库增删改查
1.简单介绍 简单封装sqlite数据库操作类 BaseDB 用于完毕对sqlite的增删改查.使用前先导入libsqlite3.0.dylib库 2.BaseDB.h // // BaseDB.h ...
- 使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)
在没有使用SQLite这种轻量级的数据库之前,只使用过Sqlserver2008进行数据的增删改查,公司使用的是大型的ORACLE数据库,还没有真正的会使用它.那时候觉得数据库很庞大,然而遇到SQLi ...
- SQLite数据库增删改查操作
一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字).TEXT(字符串 ...
- Android SQLite数据库增删改查操作
一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符 ...
随机推荐
- 解决WinForm(C#)中MDI子窗体最大化的问题
“用MDI方式打开一个子窗口体后,总是不能最大化显示,明明子窗口体的WindowState设置为Maximized?”,相信有很多人会遇到这的样问题,请按下面的方法设置即可使MDI子窗体最大化: 1. ...
- Eclipse设置模板代码
1. 打开preferences,找到Java > Editor > Templates.2. 点击"New",新建一个模版: 3. 打开Java文件,输入模版名称的前 ...
- HTTP 和 HTTPS 协议
HTTP协议是什么? 简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议. HTTP协议能做什么? 很多人首先一定会想到:浏览网页.没错,浏览网页是 ...
- HDU 2066 一个人的旅行(单源最短路SPFA)
Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还 ...
- Oracle 10046 event详解-转载
0046事件概述Oracle的10046事件,可以跟踪应用程序所执行的SQL语句,并且得到其解析次数.执行次数,CPU使用时间等信息.这对我们分析.定位数据库性能问题是非常有用的. 10046 eve ...
- 程序员必备:Oracle日常维护命令
上一篇讲了Linux的日常维护命令,这篇讲讲Oracle的日常维护命令.工作中需要使用Oracle数据库的童鞋们,相信或多或少都需要对Oracle做一些基本的维护操作,例如导入导出总该有吧?( ...
- 剑指Offer:面试题5——从尾到头打印链表(java实现)
问题描述:输入一个链表的头结点,从尾巴到头反过来打印出每个结点的值. 首先定义链表结点 public class ListNode { int val; ListNode next = null; L ...
- 医失眠灵验方--五味子50g 茯神50g 合欢花15g 法半夏15g
方药:五味子50g 茯神50g 合欢花15g 法半夏15g 水煎服 主治:失眠健忘 此方为已故名老中医李培生之验方,用于临床治疗失眠健忘症,疗效显著,其主药为五味子,滋阴和阳,敛阳 ...
- [原创]大连sap vt 实习生面试经历
从决定参加这次面试开始,求职生涯就算是开始了,虽然失败了,但也是亲身体会到了面试的感觉,这次经历也作为第一篇博客. 大连sap的职能是sap的全球技术支持中心和解决方案提供中心.VT项目提供的岗位是技 ...
- delphi调用web service出现 Unable to retrieve the URL endpoint for Service/Port .....
delphi调用web service出现 Unable to retrieve the URL endpoint for Service/Port, 错误截图如下 查了很长时间, 发现在DataM ...