一、数据库操作

package com.ping.db;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.database.sqlite.SQLiteOpenHelper;

/**

* @describe

*/

public class SQLiteTool extends SQLiteOpenHelper {

private static final String DB_NAME = "medicalscience.db"; // 数据库文件名

private static final int VERSION = 1;// 数据库版本

public static SQLiteTool newInstance(Context context) {

return new SQLiteTool(context, DB_NAME, null, VERSION);

}

private SQLiteTool(Context context, String name, CursorFactory factory, int version) {

super(context, name, factory, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(DBTCollect.createTableSQL());//有需要创建表时,可以在这添加

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//当数据库版本变大时调用

onCreate(db);

}

}

二、数据库管理类

package com.ping.db;

import java.util.concurrent.atomic.AtomicInteger;

import android.annotation.SuppressLint;

import android.database.sqlite.SQLiteDatabase;

import android.os.Build;

import com.ping.MyApplication;

/**

* @describe

*/

public class DBManager {

private AtomicInteger dbOpenCount = new AtomicInteger();//计数器

private static DBManager instance;

private static SQLiteTool sqlLiteTool;

private SQLiteDatabase database;

public static synchronized DBManager getInstance() {

if (instance == null) {

synchronized (DBManager.class) {

if (instance == null) {

instance = new DBManager();

}

}

}

return instance;

}

private DBManager() {

sqlLiteTool = SQLiteTool.newInstance(MyApplication.getInstance().getApplicationContext());

}

@SuppressLint("NewApi")

public synchronized SQLiteDatabase openDatabase() {

if (dbOpenCount.incrementAndGet() == 1) {

database = sqlLiteTool.getWritableDatabase();

if (Build.VERSION.SDK_INT >= 11) {

database.enableWriteAheadLogging();// 允许读写同时进行

}

}

return database;

}

public synchronized void closeDatabase() {

if (dbOpenCount.decrementAndGet() == 0) {

database.close();

database = null;

}

}

}

三、数据增删改查

package com.ping.db;

import java.util.ArrayList;

import android.content.ContentValues;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

/**

* @describe

*/

public class DBTCollect {

public static final String TNAME = "Tcollect";

// 创建表的语句

public static String createTableSQL() {

return "CREATE TABLE IF NOT EXISTS " + TNAME + " (kid INTEGER PRIMARY KEY AUTOINCREMENT, id TEXT, title TEXT)";

}

// 删除表的语句

public static String deleteTabelSQL() {

return "DROP TABLE IF EXISTS " + TNAME;

}

//查询数据是否存在

public static boolean isCollected(String id) {

boolean isCollected = false;

SQLiteDatabase db = DBManager.getInstance().openDatabase();//获得SQLiteDatabase对象

String sql = "select * from " + TNAME + " where id = '" + id + "'";

Cursor cursor = db.rawQuery(sql, null);

if (cursor.getCount() > 0) {

isCollected = true;

}

cursor.close();

DBManager.getInstance().closeDatabase();//关闭

return isCollected;

}

// 删除数据

public static void deleteCollect(String mid) {

SQLiteDatabase db = DBManager.getInstance().openDatabase();

db.delete(TNAME, "id = ?", new String[] { id });

DBManager.getInstance().closeDatabase();

}

//增加数据

public static void addCollect(Object obj) {

SQLiteDatabase db = DBManager.getInstance().openDatabase();

ContentValues cv = new ContentValues();

cv.put("id", obj.id);

cv.put("title", obj.title);

db.insert(TNAME, null, cv);

DBManager.getInstance().closeDatabase();

}

//查询数据

public static ArrayList getAllCollect() {

SQLiteDatabase db = DBManager.getInstance().openDatabase();

Cursor cursor = db.query(TNAME, null, null, null, null, null, null);

ArrayList objs = new ArrayList();

while (cursor.moveToNext()) {

Object obj = new Object();

obj.id = cursor.getString(cursor.getColumnIndex("id"));

obj.title = cursor.getString(cursor.getColumnIndex("title"));

objs.add(obj);

}

cursor.close();

DBManager.getInstance().closeDatabase();

return objs;

}

}

android mysql项目实例_android项目中单实例数据库类相关推荐

  1. android项目中单实例数据库类

    一.数据库操作 package com.ping.db; import android.content.Context; import android.database.sqlite.SQLiteDa ...

  2. android mysql 记事本_android项目 之 记事本(11) ----- 加入数据库

    本文是自己学习所做笔记.欢迎转载.但请注明出处:http://blog.csdn.net/jesson20121020 通过之前的10节,已实现了记事本的大部分功能,有加入拍照.加入照片,加入录音,加 ...

  3. litesql mysql 使用_Android使用sqllite实例

    在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支 ...

  4. mysql药品库管理项目简介_MySQL数据库项目化教程简介,目录书摘

    内容简介: 本书以实际的学生竞赛项目管理系统为案例依托,从MySQL数据库的相关概念及理论知识出发,介绍系统需求分析.数据库设计与实施.数据库管理与优化等内容,最终实现学生竞赛项目管理系统的设计.开发 ...

  5. android mysql 图片_android sqlite添加图片到数据库

    sqlite图片是怎么储存的呢?其实是二进制的方式存储的 blob代表使用二进制储存 (更多类型参考:数据库简介) 在创建表的地方,VALUE_PIC代表存储图片字段,blob代表这个字段是以二进制储 ...

  6. 高校教室预约使用管理系统(PHP+Mysql)毕业论文+项目源码+数据库sql文件

    目 录 第一章 绪论 5 1.1 选题目的和意义 5 1.2 系统介绍 5 1.3 本系统使用的方法和语言 6 1.3.1 统一建模语言UML 6 1.3.2 .PHP 6 第二章 系统分析 9 2. ...

  7. 【MySQL】JavaWeb项目中配置数据库的连接池

    在META-INF目录下新建context.xml <?xml version="1.0" encoding="UTF-8"?> <Conte ...

  8. android mysql 乱码_android POST数据遇到的UTF-8编码(乱码)问题解决办法

    今天遇到这样一个bug:客户端POST到服务器的一段数据导致服务器端发生未知异常.服务器端确认是编码转换错误.于是截取网络数据包进行分析,发现客户端POST的json数据中包含下面一段(hex形式): ...

  9. android java显示_Android Studio没有显示java类源代码

    我搜索了这个问题并尝试了所提出的解决方案但没有成功.我有一个项目,当我去查看源文件时,让我说Fragment它让我到 java类就好了. 现在当我去File – >新项目并完成所有相同的设置程序 ...

最新文章

  1. Arcgis mobile介绍
  2. 为AI从业者/研究生/研究员专门定制的全网唯一高端AI训练营
  3. discuz nt 安装,完全攻略。
  4. 第一周周冠军带你解析赛题,尝试广告算法新思路
  5. 紧急事态分析及处理方法
  6. PHP echo 即时输出
  7. iTEXT将html文档转PDF,spire.doc包html转word(包括样式修改和添加图片/页码等设置)
  8. CTFHub技能书解题笔记-信息泄露-备份文件下载-网站源码
  9. 使用91地图助手转换坐标系,以大地2000转经纬度为例
  10. 整理2008-2017年的所有上市公司海外收入数据
  11. 计算机的应用安全包括哪些方面,计算机软件的分类有哪些
  12. 从海尔的组织结构再造看企业的组织结构
  13. java虚拟机系列:java虚拟机内存模型
  14. JavaSE——网络编程
  15. 北京的十大尾货批发市场【接近生活】
  16. Linux 是洗衣粉?关于Linux 的10个趣事
  17. 我的暑期实习找工作经历
  18. Win 8中创建系统镜像的方法
  19. VLC media player组播测试使用总结
  20. 【电脑讲解】电脑D盘不见了怎么恢复

热门文章

  1. linux启动运行级别上机,linux的启动及其运行级别
  2. 谈谈java面向对象之抽象,手把手带你搞定java面试之面向对象
  3. 类的加载顺序和对象的实例化
  4. android开发toast通知,Toast Notifications
  5. 定义一个圆类java用echo_正则表达式中圆括号的作用
  6. java 指定文件格式_java删除指定目录下指定格式文件的方法
  7. java构造方法可以重载吗_Java基础教程之构造器与方法重载
  8. java开发五年多少钱,附超全教程文档
  9. 【深度学习】模型训练教程之Focal Loss调参和Dice实现
  10. python【Matlibplot绘图库】-认识Matploblib