SQLite Databases 数据存储
0 SQLiteDatabases数据库特点
一种切入式关系型数据库,支持事务,可使用SQL语言,独立,无需服务。程序内通过类名可访问数据库,程序外不可以访问。
SQLiteDatabases数据库使用方法
1 创建数据库及表,使用 SQLiteOpenHelper 类
public class DBHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "zc.db";//数据库名称
public static final String TANLE_NAME = "car";//表名
private static final int DATABASE_VERSION = 1;//数据库版本 public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
} //数据库第一次被创建时执行此方法,创建表
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists" + TANLE_NAME +
"(_id integer primary key autoincrement ,brandName varchar ,brandId integer ,logo text)");
} //如果DATABASE_VERSION改为2,系统发现现有数据库版本不同,即会调用onUpgrade
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("ALTER TABLE" + TANLE_NAME + " ADD COLUMN other text");
} }
2 操作SQLite数据库表,使用SQLiteDatabase类
SQLiteDatabase 增删改查方法
第一种:execSQL() , rawQuery() ,要求sql语法熟练
第二张:insert(),update(),deleter(),query()
public class DBManager { private final DBHelper dbHelper;//DBHelper对象
private final SQLiteDatabase db;//SQLiteDatabase对象 public DBManager(Context context) {
dbHelper = new DBHelper(context);
db = dbHelper.getWritableDatabase();//真正创建或打开数据库,获取可读写SQLiteDatabase对象
} //添加车辆列表
public void addCarList(List<Car> carList) {
db.beginTransaction();
try {
for (Car car : carList) {
add(car);
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
} //新增
public void add(Car car) {
ContentValues cv = new ContentValues();
cv.put("brandId", car.getBrandId());
cv.put("brandName", car.getBrandName());
cv.put("logo", car.getLogo());
//rowid 返回新添记录的行号,与主键id无关
long rowid = db.insert(DBHelper.TANLE_NAME, null, cv);
db.close();
} //删除
public void delete(String brandId) {
db.delete(DBHelper.TANLE_NAME, "brandId = ? ", new String[]{brandId});
db.close();
} //修改
public void update(Car car) {
ContentValues cv = new ContentValues();
cv.put("brandName", car.getBrandName());
db.update(DBHelper.TANLE_NAME, cv, "brandId = ? ", new String[]{car.getBrandId()});
db.close();
} //查询
public List<Car> queryList() {
List<Car> list = new ArrayList<>();
Cursor cursor = db.rawQuery("select * from " + DBHelper.TANLE_NAME, null);
while (cursor.moveToNext()) {
Car car = new Car();
car.setBrandId(cursor.getString(cursor.getColumnIndex("brandId")));
car.setBrandName(cursor.getString(cursor.getColumnIndex("brandName")));
car.setLogo(cursor.getString(cursor.getColumnIndex("logo")));
list.add(car);
}
cursor.close();
db.close();
return list;
} public Car queryCar(String brandId) {
Car car = new Car();
Cursor cursor = db.rawQuery("select * from " + DBHelper.TANLE_NAME + " where brandId = ? ", new String[]{brandId});
while (cursor.moveToNext()) {
car.setBrandId(cursor.getString(cursor.getColumnIndex("brandId")));
car.setBrandName(cursor.getString(cursor.getColumnIndex("brandName")));
car.setLogo(cursor.getString(cursor.getColumnIndex("logo")));
}
cursor.close();
db.close();
return car;
} }
SQLite Databases 数据存储的更多相关文章
- Android开发之利用SQLite进行数据存储
Android开发之利用SQLite进行数据存储 Android开发之利用SQLite进行数据存储 SQLite数据库简单介绍 Android中怎样使用SQLite 1 创建SQLiteOpenHel ...
- Android数据存储三剑客——SharedPreferences、File、SQLite
Android中常用的数据存储一般有三种方式:SharedPreferences.文件和SQLite数据库,用来保存需要长时间保存的数据.本文将通过几个具体的小实例来讲解这三种方式的具体实现. 数据存 ...
- Base-Android快速开发框架(二)--数据存储之SharedPreferences
对于App开发者,抽象来说,其实就是将数据以各种各样的方式展示在用户面前以及采集用户的数据.采集用户的数据包括用户的输入.触摸.传感器等,展示的数据通过网络来源于各业务系统,以及用户的 输入数据.在这 ...
- android入门——数据存储
首先是SharedPreferences 用户偏好 package com.example.wkp.aboutdata; import android.content.Intent; import a ...
- Android数据存储之SQLite的操作
Android作为一个应用在移动设备上的操作系统,自然也就少不了数据的存储.然而SQLite作为一个轻型的关系型数据库,基于其轻量.跨平台.多语言接口及安全性等诸多因数考虑,因而Android较大的数 ...
- Android开发手记(18) 数据存储三 SQLite存储数据
Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 SQLite 是以嵌入式为目的 ...
- Android开发8:数据存储(二)——SQLite数据库和ContentProvider的使用
前言 啦啦啦各位小伙伴们许久不见了~学期末和过年期间自己忙着做其他事没能及时更新Android开发系列课程的博客,实在是罪过罪过~ 好啦~废话不多说,进入我们今天的主题.今天我们将和大家学习其他的数据 ...
- Android开发8:数据存储(二)——SQLite数据库和ContentProvider的使用
前言 啦啦啦各位小伙伴们许久不见了~学期末和过年期间自己忙着做其他事没能及时更新Android开发系列课程的博客,实在是罪过罪过~ 好啦~废话不多说,进入我们今天的主题.今天我们将和大家学习其他的数据 ...
- Android 数据存储03之SQLite
SQLite数据存储 Android 集成了 SQLite 数据库.它存储在 /data/data/< 项目文件夹 >/databases/ 下.Android 开发中使用 SQLite ...
随机推荐
- Qt源码包中的一段代码
之所以单独拣出来是因为Qt的开发者们给普通开发者提供了高效编程的商业代码例子: bool QWidget::testAttribute_helper(Qt::WidgetAttribute attri ...
- 【Winfrom】简单的焦点设置问题
原文: http://blog.csdn.net/zlwzlwzlw/article/details/8573921 初始的时候希望指定控件的焦点 不能用load事件 要用Activated事件才行 ...
- HashMap存值
package com.exmple.tool; import java.util.HashMap; public class UserTool { public static HashMap< ...
- android 学习随笔五(界面)
把数据库内容显示到界面 清单文件设置为线性布局(5大布局属于ViewGroup) 在清单文件中可以增加View显示 LinearLayout ll = (LinearLayout) findViewB ...
- struts2 笔记04 杂记
流程: 1. StrutsPrepareAndExcuteFilter:StrutsPrepareAndExcuteFilter作为前端控制器,是整个Struts2的调度中心. 2. ActionMa ...
- jsp页面的跳转取值
<p >工单管理 >> <c:if test="${code eq 0}">全部工单>>详情页</c:if> <c ...
- 安装SQL Server 2005
在安装SQL Server 2005时,经常会遇到一些错误,从而使系统无法正常安装.下面讲解在安装过程中经常出现的一些错误及其解决的方法.1.解决在安装SQL Server 2005时安装程序被挂起的 ...
- WEB前端常用网站收集
WEB前端常用网站收集整理 w3school.w3schools 前端里.脚本之家.素材家园 17素材.frontopen NEC更好的CSS方案.一些常用的JS实例 Bootstrap 官网 h ...
- vlc分析
vlc的主界面对应的代码在vlc-2.2.1\modules\gui\qt4\main_interface.cpp.在相同目录下的qt4.cpp的module模块open函数里边new出实例: /* ...
- Houdini Krakatoa Render Plugin
HDK真实个混蛋,都懒得写个解释.凭着函数英文意思猜测.. plugin sample video: 在极其残忍的开发环境,"Particle Voxel Render" 产生了( ...