数据库Dao层编增删改查写,数据库事务,数据库升级
数据库事务
有两个特点
1.安全性
情景:正常的转账行为,这个时候如果出现停电等异常,已经扣钱但是没有加钱;这个时候就可用数据库事务解决问题
2.高效性:
使用数据库事务添加享受同数量的数据,对比耗时少:
原理:没开始事务的是打开数据库,插入数据,关闭数据库:
开启事务的是数据存到内存,然后一次写入到数据库;
数据库升级
升级的时候版本号必须要大于等于2;而且要大于上一版本;
package com.example.databasedemo; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import androidx.annotation.Nullable; public class DataBaseHelper extends SQLiteOpenHelper { private static final String TGA ="DatabaseHelper"; public DataBaseHelper(@Nullable Context context) { super(context, Constants.DATABASE_NAME, null, Constants.VRESION_CODE); } @Override public void onCreate(SQLiteDatabase db) { //创建时回调 Log.d(TGA,"创建数据库。。。"); //创建字段 //sql creat table table_name( String sql="create table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //升级时回调 Log.d(TGA,"升级数据库。。。"); String sql; //db.execSQL(sql); switch (oldVersion) { case 1: sql="alert table "+Constants.TABLE_NAME+" add address varchar"; db.execSQL(sql); break; case 2: sql="alert table "+Constants.TABLE_NAME+" add phone integer ,address varchar"; db.execSQL(sql); break; } } }
Dao层编写增删改查
与javaweb大体相同,只是代码有些不一样
package com.example.databasedemo; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; import java.security.AccessControlContext; public class Dao { private static final String TAG="Dao"; private final DataBaseHelper mHelper; public Dao(AccessControlContext context){ mHelper =new DataBaseHelper(context); } public void insert(){ SQLiteDatabase db= mHelper.getWritableDatabase(); String sql ="insert into "+Constants.TABLE_NAME +" (_id ,name ,age,salary,phone,address) values (?,?,?,?,?,?)"; db.execSQL(sql,new Object[]{1,"BillGates",60,1,110,"USA"}); db.close(); } public void delete(){ SQLiteDatabase db= mHelper.getWritableDatabase(); String sql ="delete from "+Constants.TABLE_NAME +" where age = 60"; db.execSQL(sql); db.close(); } public void update(){ SQLiteDatabase db= mHelper.getWritableDatabase(); String sql ="update from "+Constants.TABLE_NAME +" set salary= 2 where age = 60"; db.execSQL(sql); db.close(); } public void query(){ SQLiteDatabase db= mHelper.getWritableDatabase(); String sql ="select form "+Constants.TABLE_NAME +" "; Cursor cursor =db.rawQuery(sql,null); while (cursor.moveToNext()){ int index=cursor.getColumnIndex("name"); String name =cursor.getColumnName(index); Log.d(TAG,"name=="+name); } cursor.close(); db.execSQL(sql); db.close(); } }
相关推荐
spurity 2020-11-10
LeeLuffy 2020-10-16
DriveCar 2020-09-07
zjuwangleicn 2020-09-04
gamestart0 2020-08-15
loviezhang 2020-08-08
gaozhennan 2020-08-03
mcvsyy 2020-08-02
happinessaflower 2020-07-29
花落花开春去秋来 2020-07-29
牧场SZShepherd 2020-07-20
qingjiuquan 2020-07-18
zhanbuquan 2020-07-04
粗茶淡饭 2020-06-25
zbcaicai 2020-06-21
zhanbuquan 2020-06-21
花落花开春去秋来 2020-06-20
bluetears 2020-06-17
csdnlytPractice 2020-06-11
heniancheng 2020-06-10