An的roi的进阶之数据库操作

1、创建SQliteOpenHeplper子类。

2、建立数据库和表结构如下:版本号从1开始。底层以String类型存放

public class LocationInfosDBHelper extends SQLiteOpenHelper {

	private static final String DATABASE_NAME="gpsinfos.db";
	private static final int VERSION=1;
	public LocationInfosDBHelper(Context context
			) {
		super(context, <span style="color:#ff6666;">DATABASE_NAME</span>, null,<span style="color:#ff0000;"> VERSION</span>);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void <span style="color:#ff6666;">onCreate</span>(SQLiteDatabase db) {
		db.execSQL("CREATE TABLE gpsinfos(_id integer primary key autoincrement,longitude TEXT,latitude TEXT, height TEXT)");
	}

	@Override
	public void<span style="color:#ff6666;"> onUpgrade</span>(SQLiteDatabase db, int oldVersion, int newVersion) {
		 db.execSQL("drop table gpsinfos   "  );
         onCreate(db);

	}

}

3、建立数据库操作规范,dao(子类和父类有公用方法就用抽象类,不然就用接口)

public interface DeviceMacAddressDao {
	/**
	 * 把excel中的读入内存的数据并写入数据库中
	 * @param info
	 */
	public void addDeviceMacInfo(MacInfo info);

	/**
	 * 清空设备mac地址和编号
	 */
	public void clearDeviceMacInfos();

	/**
	 * 清空设备mac地址和编号
	 * @param info 蓝牙信息实体
	 */
	public void deleteDeviceMacInfo(MacInfo info);

	/**
	 * 获得数据库中所有的蓝牙设备地址和编号
	 * @return
	 */
	public List<MacInfo> getAllMacInfos();

}
	

4、数据库表操作实现类

public class DeviceMacAddressDaoImpl implements DeviceMacAddressDao {
	private boolean D = true;
	private DeviceInfoDBHelper mDbHelper;

	public DeviceMacAddressDaoImpl(Context context) {
		mDbHelper = DeviceInfoDBHelper.getInstance(context);
	}

	@Override
	public void addDeviceMacInfo(MacInfo info) {
		SQLiteDatabase database = null;
		try {
			database = mDbHelper.getWritableDatabase();
			database.execSQL(
					"insert into DeviceMacAddress(device_num,device_mac)  values(?,?)",
					new String[] { info.getDeviceNumber(), info.getDeviceMac() });
			database.close();
		} catch (Exception e) {
			if (D) {
				Log.i("蓝牙mac地址", "蓝牙mac地址写入数据库失败!!!");
			}
		}
	}

...........

5、利用静态工厂获得数据库操作对象类似

/**
	 * 获得对蓝牙地址信息操作实例
	 *
	 * @param context
	 * @return
	 */
	public static synchronized DeviceMacAddressDao getDeviceMacAddressDao(Context context) {
		if (mDeviceMacAddressDao == null) {
			mDeviceMacAddressDao = new DeviceMacAddressDaoImpl(context);
		}
		return mDeviceMacAddressDao;

	}

使用数据库操作类进行数据操作时,选择合适的上下文,便于垃圾回收!!!可以使用软引用或软引用。

时间: 2024-10-29 19:13:30

An的roi的进阶之数据库操作的相关文章

4、第八周 - 网络编程进阶 - Mysql数据库操作

数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.以下是关于数据库一些术语: 数据库: 数据库是一些关联表的集合.. 数据表: 表是数据的矩阵.在一个数据库中的表看起来像一个简单的电子表格. 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据. 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据. 冗余:存储两份数据,冗余可以使系统速度更快.例如不同表中的相同字段(表

SQL 2005 中查询或执行另外的数据库操作的方法

原文:SQL 2005 中查询或执行另外的数据库操作的方法 摘要: 如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?如果,你想在同一台数据服务器上,在不同的数据库之间查询数据,又该怎么办呢? 1.Synonym 2.openquery 3.Linked Servers Server Object-->Linked Servers--> serverType 选择 SQL Server, 在 Security 中 选择"Be made using this se

django数据库操作和中间件

数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import models class userinfo(models.Model): name = models.CharField(max_length=30) email = models.EmailField() memo = models.TextField() 可用的字段: 1.models.Aut

C# .NET更智能的数据库操作的封装

前述: 对数据库操作的封装,相信网络上已经有一大堆,ORM框架,或者是.NET本身的EF,都很好的支持数据库操作.这篇文章是分享自己所思考的,对数据库操作的简单封装.我对于这篇文章,认为被浏览者所关注重点的是怎么分析设计数据库操作封装,代码是其次.而且,这是我第一篇文章,为了想好怎么实现花了些天,代码是博客发表时现写的.所以我想,使用可能还有bug,而且没有try catch异常的设计. 这个框架我理应做到对数据库无关,无论是哪个数据库都能够使用.不过,重点在于分析,而不是代码.所以,为了更好的

python--第十一天总结(paramiko 及数据库操作)

数据库操作 Python 操作 Mysql 模块的安装 linux:     yum install MySQL-python window:     http://files.cnblogs.com/files/wupeiqi/py-mysql-win.zip

数据库——基础(数据库操作,表格操作)——增加高级查询

笔记 LAMP:Linx(操作系统) A(阿帕奇)——网页的应用程序 M(Mysql):体积小,应用简单 P(PHP) 第一步:搭建网页环境——A\M\P WAMP:用WAMP搭建环境 DW:更好的显示 数据库的基本操作: 数据库——表结构——字段(列) 每一行数据成为一条数据(记录) 特点:关系型数据库,有严格的规范 1.必须有主键:能够唯一标识一条数据的字段 2 T-SQL:通用的数据库操作语句 自增长列code(主键列) ;连接键表 最后一个字段不加 ,#注释 创建表:create tab

SQLiteDatabase数据库操作详解

今天花了点时间总结了一下数据的相关知识android中系统自带的数据库SQLiteDatabase数据库,这种数据库操作起来比ormLite数据库(第三方的)麻烦点,但是我对这种数据库操作比较熟悉所以我就采用了这种数据库,如有错误欢迎大家批评指正,谢谢 1.SQLiteDatabase SQLiteDatabase本身是一个数据库的操作类,但是如果想进行数据库的操作,还需要android.database.sqlite.SQLiteOpenHelper类的帮助,在执行SQL语句时execSQL(

Android打造属于自己的数据库操作类。

1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要去做增删改查的操作的时候,就得通过getWritableDatabase获取一个SQLiteDataBase然后老老实实去写操作值的put以及查询返回的Cursor处理,其实我们可以搞一个对象来帮我们干这些事情,打造属于你自己的数据库操作类. 2.操作类的初显形 假设现在我们什么都没有,我们要去搞一

laravel 数据库操作小例子

public function demo() { $res = null; //insert数据插入 //$user=array('username'=>'joy','password'=>'123456','age'=>23); //$res = DB::table('users')->insert($user); /* 数据查询 $res = DB::table('users')->where('username','joy')->get(); $res = DB: