android mysql项目实例_android项目中单实例数据库类
一、数据库操作
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项目中单实例数据库类相关推荐
- android项目中单实例数据库类
一.数据库操作 package com.ping.db; import android.content.Context; import android.database.sqlite.SQLiteDa ...
- android mysql 记事本_android项目 之 记事本(11) ----- 加入数据库
本文是自己学习所做笔记.欢迎转载.但请注明出处:http://blog.csdn.net/jesson20121020 通过之前的10节,已实现了记事本的大部分功能,有加入拍照.加入照片,加入录音,加 ...
- litesql mysql 使用_Android使用sqllite实例
在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支 ...
- mysql药品库管理项目简介_MySQL数据库项目化教程简介,目录书摘
内容简介: 本书以实际的学生竞赛项目管理系统为案例依托,从MySQL数据库的相关概念及理论知识出发,介绍系统需求分析.数据库设计与实施.数据库管理与优化等内容,最终实现学生竞赛项目管理系统的设计.开发 ...
- android mysql 图片_android sqlite添加图片到数据库
sqlite图片是怎么储存的呢?其实是二进制的方式存储的 blob代表使用二进制储存 (更多类型参考:数据库简介) 在创建表的地方,VALUE_PIC代表存储图片字段,blob代表这个字段是以二进制储 ...
- 高校教室预约使用管理系统(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. ...
- 【MySQL】JavaWeb项目中配置数据库的连接池
在META-INF目录下新建context.xml <?xml version="1.0" encoding="UTF-8"?> <Conte ...
- android mysql 乱码_android POST数据遇到的UTF-8编码(乱码)问题解决办法
今天遇到这样一个bug:客户端POST到服务器的一段数据导致服务器端发生未知异常.服务器端确认是编码转换错误.于是截取网络数据包进行分析,发现客户端POST的json数据中包含下面一段(hex形式): ...
- android java显示_Android Studio没有显示java类源代码
我搜索了这个问题并尝试了所提出的解决方案但没有成功.我有一个项目,当我去查看源文件时,让我说Fragment它让我到 java类就好了. 现在当我去File – >新项目并完成所有相同的设置程序 ...
最新文章
- Arcgis mobile介绍
- 为AI从业者/研究生/研究员专门定制的全网唯一高端AI训练营
- discuz nt 安装,完全攻略。
- 第一周周冠军带你解析赛题,尝试广告算法新思路
- 紧急事态分析及处理方法
- PHP echo 即时输出
- iTEXT将html文档转PDF,spire.doc包html转word(包括样式修改和添加图片/页码等设置)
- CTFHub技能书解题笔记-信息泄露-备份文件下载-网站源码
- 使用91地图助手转换坐标系,以大地2000转经纬度为例
- 整理2008-2017年的所有上市公司海外收入数据
- 计算机的应用安全包括哪些方面,计算机软件的分类有哪些
- 从海尔的组织结构再造看企业的组织结构
- java虚拟机系列:java虚拟机内存模型
- JavaSE——网络编程
- 北京的十大尾货批发市场【接近生活】
- Linux 是洗衣粉?关于Linux 的10个趣事
- 我的暑期实习找工作经历
- Win 8中创建系统镜像的方法
- VLC media player组播测试使用总结
- 【电脑讲解】电脑D盘不见了怎么恢复
热门文章
- linux启动运行级别上机,linux的启动及其运行级别
- 谈谈java面向对象之抽象,手把手带你搞定java面试之面向对象
- 类的加载顺序和对象的实例化
- android开发toast通知,Toast Notifications
- 定义一个圆类java用echo_正则表达式中圆括号的作用
- java 指定文件格式_java删除指定目录下指定格式文件的方法
- java构造方法可以重载吗_Java基础教程之构造器与方法重载
- java开发五年多少钱,附超全教程文档
- 【深度学习】模型训练教程之Focal Loss调参和Dice实现
- python【Matlibplot绘图库】-认识Matploblib