SQLite使用方法

现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧。对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取。
下面就向大家介绍一下SQLite常用的操作方法,为了方便,我将代码写在了Activity的onCreate中:


[java] view plaincopyprint?

  •     @Override  
  •     protected void onCreate(Bundle savedInstanceState) {  
  •         super.onCreate(savedInstanceState);  
  •          
  •         //打开或创建test.db数据库   
  •         SQLiteDatabase db = openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null);  
  •         db.execSQL("DROP TABLE IF EXISTS person");  
  •         //创建person表   
  •         db.execSQL("CREATE TABLE person (_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age SMALLINT)");  
  •         Person person = new Person();  
  •         person.name = "john";  
  •         person.age = 30;  
  •         //插入数据   
  •         db.execSQL("INSERT INTO person VALUES (NULL, ?, ?)", new Object[]{person.name, person.age});  
  •          
  •         person.name = "david";  
  •         person.age = 33;  
  •         //ContentValues以键值对的形式存放数据   
  •         ContentValues cv = new ContentValues();  
  •         cv.put("name", person.name);  
  •         cv.put("age", person.age);  
  •         //插入ContentValues中的数据   
  •         db.insert("person", null, cv);  
  •          
  •         cv = new ContentValues();  
  •         cv.put("age", 35);  
  •         //更新数据   
  •         db.update("person", cv, "name = ?", new String[]{"john"});  
  •          
  •         Cursor c = db.rawQuery("SELECT * FROM person WHERE age >= ?", new String[]{"33"});  
  •         while (c.moveToNext()) {  
  •             int _id = c.getInt(c.getColumnIndex("_id"));  
  •             String name = c.getString(c.getColumnIndex("name"));  
  •             int age = c.getInt(c.getColumnIndex("age"));  
  •             Log.i("db", "_id=>" + _id + ", name=>" + name + ", age=>" + age);  
  •         }  
  •         c.close();  
  •          
  •         //删除数据   
  •         db.delete("person", "age < ?", new String[]{"35"});  
  •          
  •         //关闭当前数据库   
  •         db.close();  
  •          
  •         //删除test.db数据库   
  • //      deleteDatabase("test.db");   
  •     }  

        @Override        protected void onCreate(Bundle savedInstanceState) {               
 super.onCreate(savedInstanceState);                               
//打开或创建test.db数据库               
 SQLiteDatabase db = openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null);               
 db.execSQL("DROP TABLE IF EXISTS person");               
//创建person表               
db.execSQL("CREATE TABLE person (_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age SMALLINT)");                Person person = new Person();                person.name = "john";                person.age = 30;               
//插入数据               
db.execSQL("INSERT INTO person VALUES (NULL, ?, ?)", new Object[]{person.name, person.age});                               
 person.name = "david";                person.age = 33;             
  //ContentValues以键值对的形式存放数据               
ContentValues cv = new ContentValues();               
 cv.put("name", person.name);               
cv.put("age", person.age);               
//插入ContentValues中的数据               
 db.insert("person", null, cv);                               
cv = new ContentValues();               
cv.put("age", 35);               
//更新数据               
 db.update("person", cv, "name = ?", new String[]{"john"});                               
 Cursor c = db.rawQuery("SELECT * FROM person WHERE age >= ?", new String[]{"33"});               
while (c.moveToNext()) {                       
 int _id = c.getInt(c.getColumnIndex("_id"));                       
String name = c.getString(c.getColumnIndex("name"));                       
 int age = c.getInt(c.getColumnIndex("age"));                       
 Log.i("db", "_id=>" + _id + ", name=>" + name + ", age=>" + age);               
 }               
c.close();                               
 //删除数据               
 db.delete("person", "age < ?", new String[]{"35"});                             
  //关闭当前数据库               
db.close();                               
//删除test.db数据库//               
deleteDatabase("test.db");       
 }

在执行完上面的代码后,系统就会在/data/data/[PACKAGE_NAME]/databases目录下生成一个“test.db”的数据库文件
上面的代码中基本上囊括了大部分的数据库操作;对于添加、更新和删除来说,我们都可以使用

[java] view plaincopyprint?

  • db.executeSQL(String sql);  
  • db.executeSQL(String sql, Object[] bindArgs);//sql语句中使用占位符,然后第二个参数是实际的参数集  

db.executeSQL(String sql);db.executeSQL(String sql, Object[] bindArgs);//sql语句中使用占位符,然后第二个参数是实际的参数集除了统一的形式之外,他们还有各自的操作方法: 

[java] view plaincopyprint?

  • db.insert(String table, String nullColumnHack, ContentValues values);  
  • db.update(String table, Contentvalues values, String whereClause, String whereArgs);  
  • db.delete(String table, String whereClause, String whereArgs);

原文地址:点击打开链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值