android数据库学习_事务
2016-11-22 20:48
260 查看
一、项目目录结构图
二、layout界面
三、layout界面xml代码
四、strings.xml代码
五、BankOpenHelper类代码
二、layout界面
三、layout界面xml代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="transtation" android:text="@string/transtation" /> </RelativeLayout>
四、strings.xml代码
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">1.数据库事务</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="transtation">模拟银行转账</string> </resources>
五、BankOpenHelper类代码
package com.itheima.transtation.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class BankOpenHelper extends SQLiteOpenHelper { public BankOpenHelper(Context context) { super(context, "bank.db", null, 1); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table account (_id integer primary key autoincrement,name varchar(20),money varchar(20))"); db.execSQL("insert into account ('name','money') values ('张三','2000')"); db.execSQL("insert into account ('name','money') values ('李四','5000')"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }六、MainActivity类代码
package com.itheima.transtation; import com.itheima.transtation.db.BankOpenHelper; import com.zgs.sqlite.transtation.R; import android.os.Bundle; import android.app.Activity; import android.database.sqlite.SQLiteDatabase; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //点击按钮执行该方法 public void transtation(View v){ //1.创建一个帮助类的对象 BankOpenHelper bankOpenHelper = new BankOpenHelper(this); //2.调用数据库帮助类对象的getReadableDatabase创建数据库,初始化表数据,获取一个SqliteDatabase对象去做转账(sql语句) SQLiteDatabase db = bankOpenHelper.getReadableDatabase(); //3.转账,将李四的钱减200,张三加200 db.beginTransaction();//开启一个数据库事务 try { db.execSQL("update account set money= money-200 where name=?",new String[]{"李四"}); int i = 100/0;//模拟一个异常 db.execSQL("update account set money= money+200 where name=?",new String[]{"张三"}); db.setTransactionSuccessful();//标记事务中的sql语句全部成功执行 } finally { db.endTransaction();//判断事务的标记是否成功,如果不成功,回滚错误之前执行的sql语句 } } }
相关文章推荐
- Android SQLite数据库之事务的学习
- android 学习笔记3-debug调试 数据库 事务 显示界面TextView
- Android学习总结五:数据库事务的关联(银行问题)、LinearLayout添加Texitview
- Android课程---关于数据存储的学习(3)之数据库和事务
- Android SQLite数据库之事务的学习
- 微软企业库5.0学习笔记(三十五)数据访问模块 DataSet以及数据库事务
- Android 系统数据库编程学习日志
- android数据库事务
- android数据库事务
- 【学习】数据库事务
- android数据库事务
- Android学习 之 Bitmap Drawable byte[] 三者之间的转换以及把数组存入数据库及提取数据重新组合成所需对象,如图像
- Android SQLite数据库学习笔记
- Mars老师的Android学习基本路线Linux、数据库、网络协议、服务器端开发知识基础知识
- 【转】Android使用SQLiteOpenHelper对数据库进行版本管理【学习记录】
- 【转】Android获取用于操作数据库的SQLiteDatabase实例【学习记录】
- 数据库事务学习
- android数据库事务
- Android学习之Adapter:SimpleAdapter,SimpleCursorAdapter,ArrayAdapter(数据库 列表)
- Android周学习Step By Step(6)--Android的数据库SQLite