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;
} }

SQLiteDatabase 数据库使用的更多相关文章

  1. Androide SQLiteDatabase数据库操作(转)

    SQLite可以解析大部分的标准SQL语句:建表语句:create table 表名(主键名 integer primary key autoincrement(设置为自增列),其他列名及属性)或(主 ...

  2. android SQLiteDatabase数据库使用的时候 常见问题

    用数据库的时候有时候一定要用_id否则会报错 对于Contentprovider的查询用contentResolver.insert()      一般的数据库操作用db.insert();

  3. Android数据存储之SQLCipher数据库加密

    前言: 最近研究了Android Sqlite数据库(文章地址:Android数据存储之Sqlite的介绍及使用)以及ContentProvider程序间数据共享(Android探索之ContentP ...

  4. android SQLite数据库总结

    SQLite SQLite是一种超轻量级的嵌入式数据库,大小只有几百KB,但是其语法支持标准SQL语法,同时还遵循了数据库的ACID事务,所以学过其他数据库的开发人员都很容易掌握其使用. sql语法就 ...

  5. Android SQLiteDatabase使用总结

    SQLiteDatabase数据库操作 1.创建一个继承了类SQLiteOPenHelper类复写相应的方法,和构造函数 2.然后创建一个类,定义一个私有变量(上述类的实例化对象),在构造函数中进行初 ...

  6. 数据存储与访问之——初见SQLite数据库

          本节引言: 本节学习Android数据库存储与访问的第三种方式:SQLite数据库,和其他的SQL数据库不同,我们并不需要在手机上另外安装一个数据库手机软件,Android系统已经集成了这 ...

  7. 安卓基础之Sqlite数据库最最基础操作

    Sqlite数据库基础操作 摘要:在应用中新建一个数据库,并创建一个数据表写入数据,然后读取表中数据并展示. 主要逻辑: 1.通过继承SQLiteOpenHelper自定义类,定制数据库的表结构,初始 ...

  8. 使用嵌入式关系型SQLite数据库存储数据

    除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1.SQLite3支持 ...

  9. Android 数据库框架GreenDao实战使用

    1.添加记录(SQLite 增) 2.删除记录(SQLite 删) 3.修改记录(SQLite 改) 4.查询记录(SQLite 查) <1> DAO查询 <2>QueryBu ...

随机推荐

  1. Java基础/阿里巴巴Java开发手册

    阿里巴巴Java开发手册 序号 文档名及下载地址 1 阿里巴巴Java开发手册v1.2.0 2 <阿里巴巴Java开发手册>(终极版) 为什么阿里巴巴禁止工程师直接使用日志系统(Log4j ...

  2. java 泛型的内部原理:类型擦除以及类型擦除带来的问题

    一.Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型.为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉.正确理解泛型概念的首要前提是理解类型擦出(ty ...

  3. (四:NIO系列) Java NIO Selector

    出处:Java NIO Selector 1.1. Selector入门 1.1.1. Selector的和Channel的关系 Java NIO的核心组件包括: (1)Channel(通道) (2) ...

  4. Topcoder SRM656div1 250 ( 期望DP )

    Problem Statement    Charlie has N pancakes. He wants to serve some of them for breakfast. We will n ...

  5. 三:GC回收机制

    jvm垃圾回收机制: jvm中有个垃圾回收线程,它是低优先级的,当虚拟机空闲或堆内存不足时,它就会去清除不可达对象. GC是如何去判断对象是否能被回收的 早期GC判断对象是否能被回收时用的引用计数法, ...

  6. 一步一步玩控件:自定义TabControl——从山寨Safari开始

    作者:野比 (conmajia@gmail.com) 时间:May, 2012 封面图片为野比原创,请勿未经允许私自引用 #1-1 嗯,各位,又是我,生物钟颠倒的家伙. 今天我要山寨的是大名鼎鼎的Ap ...

  7. TP中如何去掉index.php

    使用过TP的同学都知道,在URL始终会有index .php  我们如何才能够去掉呢? 1. 确认httpd.conf配置文件中加载了mod_rewrite.so模块 2. AllowOverride ...

  8. JSP学习(3)

    JSP学习(3) JSP内置对象 Web容器创建的一组对象,不使用new关键字就可以使用的内置对象 用户服务器请求 缓冲区:Buffer,就是内存的一块区域,用来保存临时数据. get与post的区别 ...

  9. ps:选区的存储及载入

    有时候需要把已经创建好的选区存储起来,方便以后再次使用.就要使用选区存储功能. 创建选区后,直接点击右键(限于选取工具)出现的菜单中就“存储选区”项目.也可以使用菜单[选择 存储选区].会出现一个名称 ...

  10. shell 数组中 @ 跟 * 的区别

    关于在shell脚本中数组变量中 “*”跟 “@” 区别 “*”当变量加上“” 会当成一串字符串处理. “@”变量加上“” 依然当做数组处理. 在没有加上“” 的情况下 效果是等效的. #!/bin/ ...