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