数据库Dao层编增删改查写,数据库事务,数据库升级

Posted 2940500426yingxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库Dao层编增删改查写,数据库事务,数据库升级相关的知识,希望对你有一定的参考价值。

数据库事务

有两个特点

1.安全性

情景:正常的转账行为,这个时候如果出现停电等异常,已经扣钱但是没有加钱;这个时候就可用数据库事务解决问题

2.高效性:

使用数据库事务添加享受同数量的数据,对比耗时少:

原理:没开始事务的是打开数据库,插入数据,关闭数据库:

    开启事务的是数据存到内存,然后一次写入到数据库;

数据库升级

升级的时候版本号必须要大于等于2;而且要大于上一版本;

 1 package com.example.databasedemo;
 2 
 3 import android.content.Context;
 4 import android.database.sqlite.SQLiteDatabase;
 5 import android.database.sqlite.SQLiteOpenHelper;
 6 import android.util.Log;
 7 
 8 import androidx.annotation.Nullable;
 9 
10 public class DataBaseHelper extends SQLiteOpenHelper {
11 
12     private static final String TGA ="DatabaseHelper";
13 
14     public DataBaseHelper(@Nullable Context context) {
15         super(context, Constants.DATABASE_NAME, null, Constants.VRESION_CODE);
16     }
17 
18     @Override
19     public void onCreate(SQLiteDatabase db) {
20         //创建时回调
21         Log.d(TGA,"创建数据库。。。");
22         //创建字段
23         //sql creat table table_name(
24         String sql="create table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer)";
25         db.execSQL(sql);
26     }
27 
28     @Override
29     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
30         //升级时回调
31         Log.d(TGA,"升级数据库。。。");
32 
33         String sql;
34         //db.execSQL(sql);
35 
36         switch (oldVersion)
37         {
38             case 1:
39 
40                 sql="alert table "+Constants.TABLE_NAME+" add address varchar";
41                 db.execSQL(sql);
42                 break;
43 
44             case 2:
45                 sql="alert table "+Constants.TABLE_NAME+" add phone integer ,address varchar";
46                 db.execSQL(sql);
47                 break;
48 
49 
50         }
51 
52     }
53 }

Dao层编写增删改查

与javaweb大体相同,只是代码有些不一样

 1 package com.example.databasedemo;
 2 
 3 import android.content.Context;
 4 import android.database.Cursor;
 5 import android.database.sqlite.SQLiteDatabase;
 6 import android.util.Log;
 7 
 8 import java.security.AccessControlContext;
 9 
10 public class Dao {
11 
12     private static final String TAG="Dao";
13     private final DataBaseHelper mHelper;
14 
15     public Dao(AccessControlContext context){
16 
17          mHelper =new DataBaseHelper(context);
18     }
19 
20     public void  insert(){
21         SQLiteDatabase db= mHelper.getWritableDatabase();
22         String sql ="insert into "+Constants.TABLE_NAME +" (_id ,name ,age,salary,phone,address) values (?,?,?,?,?,?)";
23         db.execSQL(sql,new Object[]{1,"BillGates",60,1,110,"USA"});
24         db.close();
25     }
26 
27     public void delete(){
28         SQLiteDatabase db= mHelper.getWritableDatabase();
29         String sql ="delete  from  "+Constants.TABLE_NAME +" where age = 60";
30         db.execSQL(sql);
31         db.close();
32     }
33 
34     public void update(){
35         SQLiteDatabase db= mHelper.getWritableDatabase();
36         String sql ="update  from  "+Constants.TABLE_NAME +" set salary= 2 where age = 60";
37         db.execSQL(sql);
38         db.close();
39     }
40 
41     public void query(){
42 
43         SQLiteDatabase db= mHelper.getWritableDatabase();
44         String sql ="select  form  "+Constants.TABLE_NAME +" ";
45         Cursor cursor =db.rawQuery(sql,null);
46 
47         while (cursor.moveToNext()){
48             int index=cursor.getColumnIndex("name");
49             String name =cursor.getColumnName(index);
50             Log.d(TAG,"name=="+name);
51         }
52         cursor.close();
53         db.execSQL(sql);
54         db.close();
55     }
56 }

 

以上是关于数据库Dao层编增删改查写,数据库事务,数据库升级的主要内容,如果未能解决你的问题,请参考以下文章

MVC设计模式((javaWEB)在数据库连接池下,实现对数据库中的数据增删改查操作)

反射实现增删改查(DAO层)——修改数据

反射实现增删改查(DAO层)——插入数据

反射实现数据库增删改查DAO及DAOImpl源代码

反射实现增删改查(DAO层)——删除数据

打怪升级之小白的大数据之旅(三十五)<JDBC的扩展知识点>