数据库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 }

原文地址:https://www.cnblogs.com/2940500426yingxin/p/12304926.html

时间: 2024-08-23 09:21:41

数据库Dao层编增删改查写,数据库事务,数据库升级的相关文章

Android中使用Sqlite数据库 (二) 增删改查

定义接口 package com.example.android_db.service; import java.util.List; import java.util.Map; public interface PersonService { public boolean addPerson(Object[] params); public boolean deletePerson(Object[] params); public boolean updatePerson(Object[] p

【ASP】ASP对Access数据库的连接、增删改查及ASP的基本语法

本文讨论的是ASP,而不是Visual Studio写出来的.ASPX也就是ASP.NET. ASP不需要任何插件的支持,关键你是配置好WINDOWS的IIS服务器,把页面扔在上面执行就可以了. 不同WINDOWS系统的IIS服务器配置,除了某些被阉割的WINXP装机版系统之外,都支持IIS服务器配置,都在WINDOWS的组件中,不需要下载任何东西.如何配置IIS服务器不是本文讨论的重点. 一.基本目标 假设Access2007数据库database.mdb中存在表test如下: id为自增列,

MySQL数据库之表的增删改查

目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是硬盘上的一个文件夹,表table就是文件夹里面的一个文件 2.表中的一条记录就相当于文件中的一行内容,与excel表类似,表table中有不同的标题,称之为字段 3.本节对表结构做增删改查,即创建表.删除表.修改表.查看表结构,至于表中数据的增删改查日后单独总结 2 创建表 1.创建一张表,需要建一

Django 连接数据库,数据库表字段的增删改查

如何获取前端数据 request方法: 获取前端数据的方式: request.POST(获取表单中发送的数据).request.GET  (获取的是url后面跟的数据) 前端:注意name属性的值即为后台大字典的key ,即通过key来取到前端发过来的数据 后端: views :  request.POST.get()  方法默认取列表中的最后一个值,request.POST.getlist()    取列表 数据库:Django连接数据库配置: 1.   setting.py : 配置数据库

java H2数据库使用并实现增删改查功能

原文:java H2数据库使用并实现增删改查功能 代码下载地址:http://www.zuidaima.com/share/1550463278058496.htm package com.zuidaima.h2sql.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.St

使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的MySQL Community Server 选择想要的版本进行下载 之后的步骤,因为本人已经安装过MySQL数据库,而卸载重装会比较麻烦,卸载不干净会导致新的装不上,所以可以参考下面的博客,因为官网的改动,前面的部分已经与该博客不符,按照本人在上面的介绍寻找即可 https://blog.csdn

赵雅智_使用SQLiteDatabase提供的增删改查方法及事务

知识点详解:http://blog.csdn.net/zhaoyazhi2129/article/details/9026093 MainActivity.java,User.java,BaseDao.java,UserDao.java同上篇 http://blog.csdn.net/zhaoyazhi2129/article/details/28640195 UserDaoImple.java package com.example.android_sqlite.dao.impl; impor

【andorid基础篇】数据库的创建以及增删改查

I,安卓下的数据库 安卓下使用的数据库是SQLite,安卓为我们提供的API是SQLiteOpenHelper. 1,创建一个数据库 1)写一类去继承抽象类SQLiteOpenHelper,我们需要复写相关的方法: 1 public WcxSQLite(Context context, String name, CursorFactory factory,int version) { super(context, name, factory, version); 3 } 4 5 public v

数据库中简单的增删改查(CRUD)

一切都是基于数据,而对数据的管理都离不开数据库.最近学到数据库的简单操作,所以写下这篇文章,总结一下学习到的知识.浅陋之处,多多见谅. 补充一下:一直弄不清SQL Server,Mysql ,以及Oracle的关系.SQL Server是微软的,因为微软系统的市场占有额,所以这款软件在市场上也占用很大份额,而Mysql是一款开源免费的数据库,我们知道关系型数据库最开始是IBM的一个实验室提出的理论,但是当时并没有被IBM公司重视,被Oracle的创始人劳伦斯·埃里森重视,发展壮大起来.但是Ora