Android学习四:数据库操作

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总结

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

时间: 2024-08-10 00:03:33

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

android中的数据库操作(转)

android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库,它是用c语言构建的.相关简介可以从链接查看. 2.数据库基本知识观花   对于一些和我一样还没有真正系统学习数据库技术的同学来说,把SQL92标准中的一些基本概念.基本语句快速的了解一下,是很有必要的,这样待会用Android的da

android中的数据库操作【转】

http://blog.csdn.net/nieweilin/article/details/5919013 android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库,它是用c语言构建的.相关简介可以从链接查看. 2.数据库基本知识观花   对于一些和我一样还没有真正系统学习数据库技术的同

Android学习---SQLite数据库的增删改查和事务(transaction)调用

上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代码实现增删查改: 1.创建DB工具类 MyDBHelper.java(创建数据库的操作) package com.amos.android_db; import android.content.Context; import android.database.sqlite.SQLiteDatabas

PHP学习之-数据库操作

PHP学习之-数据库操作 1.PHP支持那些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Sybase,Db2,Oracle,PostgreSQL,Access等,这些数据库PHP都能够安装扩展来支持,一般情况下常说的LAMP架构指的是:Linux.Apache.Mysql.PHP,因此Mysql数据库在PHP中的应用非常广泛,我们会在本章中简单的了解Mysql的操作方法.

Android学习四、Android中的Adapter

一.Adapter的介绍 An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set. 一个Adapter是Ad

PHP学习之数据库操作

PHP数据库操作: 一.连接数据库 mysql_connect() 例:$link=mysql_connent("localhost","root","root"); 二.选择数据库 mysql_select_db() 连接到数据库后,php会默认选择一个数据库,但是这个数据库不一定是我们所需要的数据库,所以还要自己选择连接的数据库. 例:mysql_select_db("test",$link); 三.执行SQL语句 mys

python学习之数据库操作

一.数据库基本操作 数据库操作: 查看存储引擎: show engines; 查看数据库: show databases; 或者show create database oldboy\G 创建数据库: create database oldboy default charset=utf8; 删除数据库: drop database oldboy; 进入数据库:  use oldboy; 数据表操作: 创建数据表: create table tb_emp1 (     -> id int(11),

Qt 学习:数据库操作

Qt 提供了 QtSql 模块来提供平台独立的基于 SQL 的数据库操作.这里我们所说的“平台独立”,既包括操作系统平台,有包括各个数据库平台.另外,我们强调了“基于 SQL”,因为 NoSQL 数据库至今没有一个通用查询方法,所以不可能提供一种通用的 NoSQL 数据库的操作.Qt 的数据库操作还可以很方便的与 model/view 架构进行整合.通常来说,我们对数据库的操作更多地在于对数据库表的操作,而这正是 model/view 架构的长项. Qt 使用QSqlDatabase表示一个数据

flask学习之数据库操作一

数据库操作使用 sqlalchemy模块安装(需安装MySQL-python/python-devel) pip install flask-sqlalchemy 目录结构 ├── app │   ├── __init__.py │   └── models.py ├── config.py 配置环境 vim config.py #coding:utf-8 SQLALCHEMY_DATABASE_URI = 'mysql://mysqlTest:[email protected]/mysqlTe