Android -- Android JUint 与 Sqlite
创建一个数据库
public PersonSQLite(Context context) {
super(context, "person.db", null, 1);
// TODO 自动生成的构造函数存根
}
背景
这里以一个Person类来举例,Person类里面有成员变量,数据库的列也是这几项。
Person类
private int id;
private String name;
private String number;
SQL语句类
private PersonSQLite sqlite;
public PersonDao2(Context context) {
sqlite = new PersonSQLite(context);
}
public long add(String name ,String number)
{
SQLiteDatabase db = sqlite.getWritableDatabase();
//db.execSQL("insert into person (name,number) values (?,?)", new Object[]{name,number});
ContentValues values = new ContentValues();
values.put("name", name);
values.put("number", number);
long id = db.insert("person", null, values);
db.close();
return id;
}
public boolean find(String name)
{
SQLiteDatabase db = sqlite.getReadableDatabase();
//Cursor cursor = db.rawQuery("select * from person where name=?", new String[]{name});
Cursor cursor = db.query("person", null,"name=?", new String[]{name}, null, null, null);
boolean result = cursor.moveToNext();
cursor.close();
db.close();
return result;
}
public int update(String name , String newnumber)
{
SQLiteDatabase db = sqlite.getWritableDatabase();
//db.execSQL("update person set number=? where name =?",new Object[]{newnumber,name});
ContentValues values = new ContentValues();
values.put("number", newnumber);
int number = db.update("person", values, "name=?", new String[]{newnumber});
db.close();
return number;
}
public int delete(String name)
{
SQLiteDatabase db = sqlite.getWritableDatabase();
//db.execSQL("delete from person where name = ?",new Object[]{name});
int number = db.delete("person", "name=?", new String[]{name});
db.close();
return number;
}
public List<Person> findAll()
{
SQLiteDatabase db = sqlite.getReadableDatabase();
List<Person> persons = new ArrayList<Person>();
//Cursor cursor = db.rawQuery("select name,id,number from person",null);
Cursor cursor = db.query("person", new String[]{"name","id","number"}, null, null, null, null, null);
while(cursor.moveToNext())
{
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String number = cursor.getString(cursor.getColumnIndex("number"));
Person p = new Person(id,name,number);
persons.add(p);
}
cursor.close();
db.close();
return persons;
}
这些方法的作用通过名字可以理解的吧~~然后注释掉的语句是直接通过SQL语句写的,另外一种写法就是调用官方的网API。里面比如db.query,还有db.delete等。
测试类
public class testDB extends AndroidTestCase {
public void testCreateDB() throws Exception {
PersonSQLite sqlite = new PersonSQLite(getContext());
sqlite.getWritableDatabase();
}
public void testAdd() throws Exception
{
PersonDao dao = new PersonDao(getContext());
dao.add("wangwu","123321");
}
public void testFind()
{
PersonDao dao = new PersonDao(getContext());
boolean result = dao.find("wangwu");
assertEquals(true, result);
}
public void testUpdate()
{
PersonDao dao = new PersonDao(getContext());
dao.update("wangwu", "122222222");
}
public void testeDelete()
{
PersonDao dao = new PersonDao(getContext());
dao.delete("wangwu");
}
public void testFindAll()
{
PersonDao dao = new PersonDao(getContext());
List<Person> persons = dao.findAll();
for(Person p : persons)
{
System.out.println(p.toString());
}
}
}
测试权限
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.yuyidong.sqlite">
</instrumentation> <uses-library android:name="android.test.runner"/>
我是天王盖地虎的分割线
之前写过一个Sqlite的博客,但是没有这样测试着弄,是直接操作的,所以可能会有问题,这里再发一帖更正以前的错误。
源代码:http://pan.baidu.com/s/1dD1Qx01
SQLite1.zip
转载请注明出处:http://www.cnblogs.com/yydcdut
Android -- Android JUint 与 Sqlite的更多相关文章
- 【转载】Android数据存储之SQLite
SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎.它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行. 在Android中创建的SQLite数据库存储在:/d ...
- android数据存储之Sqlite(二)
SQLite学习笔记 前言:上一章我们介绍了sqlite的一些基本知识以及在dos命令下对sqlite进行的增删改查的操作,这一章我们将在android项目中实际来操作sqlite. 1. SQLit ...
- Android数据存储之SQLite的操作
Android作为一个应用在移动设备上的操作系统,自然也就少不了数据的存储.然而SQLite作为一个轻型的关系型数据库,基于其轻量.跨平台.多语言接口及安全性等诸多因数考虑,因而Android较大的数 ...
- Android虚拟机中的sqlite数据库文件
Android虚拟机中的sqlite数据库文件 ①
- android 入门 006(sqlite增删改查)
android 入门 006(sqlite增删改查) package cn.rfvip.feb_14_2_sqlite; import android.content.Context; import ...
- android学习笔记48——SQLite
SQLite SQLite试试一个嵌入式的数据库引擎,专门用于资源有限的设备(如手机.PDA)上适量数据存取. SQLite支持绝大部分SQL92语法,同样允许开发者使用SQL语句操作数据库中的数据, ...
- Android学习-----如何使用sqlite对于后台数据交换,sqlite使用例程入门
SQLite 这是一个非常流行的嵌入式数据库.它支持 SQL 查询,和只使用很少的内存.Android 在集成实施 SQLite,所以每 Android 应用程序能够使用 SQLite 数据库. ...
- 【Android 应用开发】Android 数据存储 之 SQLite数据库详解
. 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19028665 . SQLiteDataBase示例程序下 ...
- android:Android中用文件初始化sqlite数据库(zz)
很多时候在应用安装初始化时,需要创建本地数据库,同时为数据库添加数据,之后再从数据库中读取数据. 这里有2个思路 1.先在本地创建一个能支持android使用的sqlite数据库文件,启动时, ...
随机推荐
- 【SQL SERVER】触发器(一)
下面是个人对触发器知识的整理,触发器其实很简单,但想要编写发杂的触发器操作还是需要一定的SQL语句编写,触发器主要用于SQL SERVER约束.默认值和规则的完整性检查,还可以实现由主键和外键不能保证 ...
- PHP获取以为数组中的最大值和最小值
1.PHP获取一维数组中的最大值 <?php $a=array('1','3','55','99'); $pos = array_search(max($a), $a); echo $a[$po ...
- React Native踩坑之启动android模拟器失败
报错 Could not install the app on the device, read the error above for details.Make sure you have an A ...
- Bzoj5188/洛谷P4185 [Usaco2018 Jan]MooTube(并查集)
题面 Bzoj 洛谷 题解 最暴力的方法是直接判两个点之间的路径最小值是否\(\geq k\),用\(Dijkstra\)可以做到该算法最快效率,但是空间复杂度始终是\(O(n^2)\)的,会\(ML ...
- Xamarin.Forms XAML的辅助功能Code Snippet
Xamarin.Forms XAML的辅助功能Code Snippet 在Visual Studio中,使用Code Snippet(代码片段)功能可以减少基础代码的编写量,如常见的标签.循环语句 ...
- linux下如何配置TCP参数设置详解
设置tcp参数一定要小心谨慎,轻易不要更改线上环境,我贴一下我们线上环境中,sysctl.conf的内容,见文章底部 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tc ...
- luoguP1354房间最短路问题
判断两点间连通性,建图跑floyed #include<bits/stdc++.h> using namespace std; ; struct node { ],x; }q[N];dou ...
- [原]Android Studio使用极光推送出现at cn.jpush.android.service.ServiceInterface.a(Unknown Source) 已解决
- HTML5开发的翻页效果实例
简介2010年F-i.com和Google Chrome团队合力致力于主题为<20 Things I Learned about Browsers and the Web>(www.20t ...
- 使用Win2D在UWP程序中2D绘图(二)
绘制API 首先还是看一下前文的的示例: args.DrawingSession.DrawEllipse(155, 115, 80, 30, Colors.Black, 3); args.Dra ...