1前言

android中使用SQLite作为数据库,在进行相关的开发的时候不需要导入包。SQLite起符合SQL标准,也有自己的一些特性,是一个轻量级的数据库。

2代码

简单的数据库类封装

package org.tonny.utils;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
/**
* students.db 数据库的名字 ;null 表示使用默认的游标工厂 ;1 表示一开始的版本,建议设置为1
*/
super(context, "sutdents.db", null, 1);
} @Override
public void onCreate(SQLiteDatabase db) {
// 该方法在第一次创建数据库的时候被调用
// 因此可以在这个地方创建表之类的操作
db.execSQL("CREATE TABLE student(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20))");
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 修改数据库的版本会触发此函数
// 在这里可以添加新的表或者修改表的字段
}
}

模型对象

package org.tonny.utils;

public class Student {
private int id;
private String name; public Student() { } public Student(int id, String name) {
this.id = id;
this.name = name;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}

控制逻辑

package org.tonny.utils;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; public class StudentService { private DBHelper dbHelper = null; public StudentService(Context context) {
this.dbHelper = new DBHelper(context);
} public void insert(Student stu) {
// 内部有緩存功能,使用的是同一個句柄,如果数据库满了,则返回一个只读的句柄
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 使用占位符號‘?’,防止特殊字符
db.execSQL("INSERT INTO student VALUES(?,?)",
new Object[] { stu.getId(), stu.getName() });
} public void delete(Integer id) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
db.execSQL("DELETE FROM student WHERE id = ?",
new String[] { String.valueOf(id) });
} public void update(Student stu) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL("UPDATE student SET name = ? WHERE id = ?", new String[] {
stu.getName(), String.valueOf(stu.getId()) });
} public Student query(Integer id) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "SELECT * FROM student WHERE id = ?";
Cursor cursor = db.rawQuery(sql, new String[] { String.valueOf(id) });
if (cursor.moveToFirst()) {
int stuId = cursor.getInt(cursor.getColumnIndex("id"));
String stuName = cursor.getString(cursor.getColumnIndex("name"));
return new Student(stuId, stuName);
}
return null;
}
}

3总结

数据库的操作都差不多,就这些吧,还有的其他功能等我回头再完善吧。

Android学习四:数据库操作的更多相关文章

  1. android中的数据库操作(转)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  2. android中的数据库操作(SQLite)

    android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   an ...

  3. PHP学习之-数据库操作

    PHP学习之-数据库操作 1.PHP支持那些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Sybase,Db2,Or ...

  4. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  5. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

  6. android中的数据库操作

    如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...

  7. PHP学习之数据库操作

    PHP数据库操作: 一.连接数据库 mysql_connect() 例:$link=mysql_connent("localhost","root"," ...

  8. java EE学习之数据库操作

    jdbc开发流程 注册驱动 建立连接(Connection) 创建运行SQL的语句(Statement) 运行语句 处理运行结果(ResultSet) 释放资源 注冊驱动有三种方式: Class.fo ...

  9. ThinkPHP5.1学习笔记 数据库操作

    数据库 参见<Thinkphp5.1完全开发手册>学习 Mirror王宇阳 数据库连接 ThinkPHP采用内置抽象层对数据库操作进行封装处理:且基于PDO模式,可以适配各种数据库. 数据 ...

  10. spring学习之三 数据库操作jdbcTemplate

    概念 jdbcTemplate就Spring对数据库持久化技术的实现,通过它可以对数据库进行CRUD等操作. JDBCTemplate和代码实现 public void jdbcadd() { Dri ...

随机推荐

  1. Integer

    import static java.lang.System.*; public class IntegerTestOne{ public static void main(String []args ...

  2. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...

  3. Java后台传前台json数组

    function checkStore(){ var flag=1; $.ajax({ url:"widget?type=shop_cart&ajax=yes&action= ...

  4. Linux 系统目录结构

    登录系统后,在当前命令窗口下输入命令: ls / 你会看到如下图所示: 树状目录结构: 以下是对这些目录的解释: /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boot ...

  5. Django1.9开发博客(8)- 继续完善

    到现在为止我们已经完成的差不多了,并且基本的东西都已经学到了,是时候用起来了. 我们的博客还有很多功能需要完善,下面抛砖引玉新增几个功能,还有其他功能等你自己去发现和实现. 草稿箱 之前我们新建文章的 ...

  6. google高级搜索

    ext:php program_listing intitle:MythWeb.Program.Listing inurl:preferences.ini “[emule]” intitle:”Ind ...

  7. 算法课堂笔记14—NP-COMPLETENESS

    今天的算法课接着上一节,说的是NP问题. 1.关于什么是P和NP问题 所谓P问题是指所有能在多项式复杂度解决的问题,比如排序算法,n*n复杂度解决问题.而对于有些问题,目前可能没有多项式复杂度的解决方 ...

  8. NodeJS利用mongoose模糊查询MongoDB

    在Node.js中,直接硬编码可以 Posts.where('title',/答案/); 但是 通过 字符串构造 不行 var qs = '/'+req.query.search+'/'; Posts ...

  9. [强连通分量] POJ 1236 Network of Schools

    Network of Schools Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16803   Accepted: 66 ...

  10. sql整型字段模糊查询

    select count(*) cnt from vhuiy where CAST(id as text) like'%12%'--id为int类型 更详细的链接:http://www.studyof ...