1. 转载 http://blog.csdn.net/s874154731/article/details/7086238
  2.  
  3. import android.content.Context;
  4. import android.database.sqlite.SQLiteDatabase;
  5. import android.database.sqlite.SQLiteDatabase.CursorFactory;
  6. import android.database.sqlite.SQLiteOpenHelper;
  7. import android.util.Log;
  8. public class DatabaseHelper extends SQLiteOpenHelper {
  9. static String dbName= "mydb.db";
  10. static int dbVersion = 2;
  11. public DatabaseHelper(Context context) {
  12. super(context, dbName, null, dbVersion);
  13. }
  14. //只在初次使用数据库的时候会被自动调用一次
  15. public void onCreate(SQLiteDatabase db) {
  16. Log.i("TAG","onCrete被调用了");
  17. String sql = "create table person(personid integer primary key autoincrement," +
  18. "name varchar(20), age integer)";
  19. db.execSQL(sql);
  20. }
  21. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  22. Log.i("TAG","onUpgrade被调用了");
  23. String sql = "alter table person add phone char(20) null";
  24. db.execSQL(sql);
  25. }
  26. }
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import android.content.Context;
  4. import android.database.Cursor;
  5. import android.database.sqlite.SQLiteDatabase;
  6. import cn.class3g.domain.Person;
  7. public class PersonService {
  8. private DatabaseHelper dbHelper;
  9. public PersonService(Context context){
  10. dbHelper = new DatabaseHelper(context);
  11. }
  12. public void add(Person person){
  13. SQLiteDatabase db = dbHelper.getReadableDatabase();
  14. String sql = "insert into person(name, age, phone) values(?,?,?)";
  15. db.execSQL(sql,new Object[]{person.getName(), person.getAge(), person.getPhone()});
  16. }
  17. public void delete(int id){
  18. SQLiteDatabase db = dbHelper.getReadableDatabase();
  19. String sql = "delete from person where personid=?";
  20. db.execSQL(sql,new Object[]{id});
  21. }
  22. public void update(Person person, int id){
  23. SQLiteDatabase db = dbHelper.getReadableDatabase();
  24. String sql = "update person set name=?, age=?, phone=? where personid=?";
  25. db.execSQL(sql,new Object[]{person.getName(),person.getAge(),person.getPhone(), id});
  26. }
  27. public Person find(int id){
  28. SQLiteDatabase db = dbHelper.getReadableDatabase();
  29. String sql = "select * from person where personid=?";
  30. Cursor cursor = db.rawQuery(sql, new String[]{String.valueOf(id) });
  31. if(cursor.moveToNext()){
  32. Person person = new Person();
  33. person.setPersionid(cursor.getInt(0));
  34. person.setName(cursor.getString(cursor.getColumnIndex("name")));
  35. person.setAge(cursor.getInt(2));
  36. person.setPhone(cursor.getString(3));
  37. return person;
  38. }
  39. return null;
  40. }
  41. public int getRecordsCount(){
  42. SQLiteDatabase db = dbHelper.getReadableDatabase();
  43. String sql = "select count(*) from person";
  44. Cursor cursor = db.rawQuery(sql, null);
  45. cursor.moveToFirst();
  46. int count = cursor.getInt(0);
  47. cursor.close();
  48. return count;
  49. }
  50. //跳过前面的start条记录,读取其后count记录
  51. public List<Person> getScrollData(int start, int count){
  52. SQLiteDatabase db = dbHelper.getReadableDatabase();
  53. String sql = "select * from person limit ?,?";
  54. Cursor cursor = db.rawQuery(sql,
  55. new String[] { String.valueOf(start),
  56. String.valueOf(count) });
  57. List<Person> list = new ArrayList<Person>();
  58. while(cursor.moveToNext()){
  59. Person p = new Person();
  60. p.setPersionid(cursor.getInt(0));
  61. p.setName(cursor.getString(1));
  62. p.setAge(cursor.getInt(2));
  63. list.add(p);
  64. }
  65. cursor.close();
  66. return list;
  67. }
  68. }

Android sqlite的更多相关文章

  1. Android SQLite 通配符查询找不到参数问题

    使用Android SQLite中SQLiteDatabase类的query方法查询时,如果where中包含通配符,则参数会无法设置,如类似下面的方法查询时 SQLiteDatabase db = d ...

  2. Android+Sqlite 实现古诗阅读应用(三)

    往期传送门: Android+Sqlite 实现古诗阅读应用(一) Android+Sqlite 实现古诗阅读应用(二) 加入截图分享的功能. 很多应用都有分享的功能,我也想在我的古诗App里加入这个 ...

  3. Android+Sqlite 实现古诗阅读应用(二)

    传送门:Android+Sqlite 实现古诗阅读应用(一) Hi,又回来了,最近接到很多热情洋溢的小伙伴们的来信,吼开心哈,我会继续努力的=-=! 上回的东西我们做到了有个textview能随机选择 ...

  4. Android Sqlite 数据库版本更新

      Android Sqlite 数据库版本更新 http://87426628.blog.163.com/blog/static/6069361820131069485844/ 1.自己写一个类继承 ...

  5. Android SQLite总结(一) (转)

    Android SQLite总结(一)  郑海波 2012-08-21 转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/7891887 前言 ...

  6. android SQLite使用SQLiteOpenHelper类对数据库进行操作

    android SQLite使用SQLiteOpenHelper类对数据库进行操作 原文: http://byandby.iteye.com/blog/835580

  7. Android sqlite管理数据库基本用法

    Android操作系统中内置了sqlite数据库(有关sqlite数据库详细介绍见:http://zh.wikipedia.org/wiki/SQLite),而sqllite本身是一个很小型的数据库, ...

  8. Android SQLite 数据库详细介绍

    Android SQLite 数据库详细介绍 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用 ...

  9. Android Sqlite 导入CSV文件 .

    http://blog.csdn.net/johnnycode/article/details/7413111 今天遇到 Oracle 导出的12万条CSV格式数据导入 Android Sqlite ...

  10. Android sqlite数据库存取图片信息

    Android sqlite数据库存取图片信息 存储图片:bitmap private byte[] getIconData(Bitmap bitmap){ int size = bitmap.get ...

随机推荐

  1. sysbench 安装 原创

    1.下载sysbench version 0.5 https://github.com/akopytov/sysbench 2. [root@server1 sysbench-0.5]# pwd/ro ...

  2. C# TextBox 换行 滚动到最后一行

    .要让一个Windows Form的TextBox显示多行文本就得把它的Multiline属性设置为true. 这个大家都知道,可是当你要在代码中为Text属性设置多行文本的时候可能会遇到点麻烦:) ...

  3. apache配置--虚拟目录

    apache在httpd-vhosts.conf中 配置二级域名或者泛域名: <VirtualHost *:80>    ServerAdmin 846606478@qq.com    D ...

  4. Advice on improving your programming skills

    Programming is cool. But behind the scenes it's also difficult for many people. Many people are defe ...

  5. Android(java)学习笔记76:多线程-定时器概述和使用

    定时器: 定时器是一个应用十分广泛的线程工具,可用于调度多个定时任务以后台线程的方式执行. 在Java中,可以通过Timer和TimerTask类来实现定义调度的功能 Timer public Tim ...

  6. ArcGIS Server 10.2 实战(四)格栅动态配色服务

    当你的地理处理服务输出的是格栅,那个不可避免地需要为格栅的各类型数据添加不同色彩进行区分,而默认时格栅的色彩是随机的,或者固定死一套着色方案是也显得不够人性化,难以满足多样的客户需求,下面谈谈如何解决 ...

  7. 关于js判断鼠标移入元素的方向——上下左右

    一开始我是这么想的,将待移入的元素分割四块,用mousemove获取第一次鼠标落入的区域来判断鼠标是从哪个方向进去的. 所以只要写个算法来判断鼠标的值落入该元素的区域就可以得出鼠标移入的方向,如下图: ...

  8. Adobe Edge Animate –Edge Commons强势来袭,Edge团队开发成为现实

    Adobe Edge Animate –Edge Commons强势来袭,Edge团队开发成为现实 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. Edge ...

  9. HUST 1017 Exact cover (Dancing links)

    1017 - Exact cover 时间限制:15秒 内存限制:128兆 自定评测 6110 次提交 3226 次通过 题目描述 There is an N*M matrix with only 0 ...

  10. [BigData]关于HDFS的伪分布式安装和虚拟机网络的配置

    [BigData]关于Hadoop学习笔记第一天(段海涛老师)(三) 视频2: hadoop的应用在电商,"浏览了该商品的人还看了","浏览了该商品的人最终购买的&quo ...