- import android.content.Context;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- /**
- * 创建数据库帮助类 extends SQLiteOpenHelper
- */
- public class MyDbOpenHelper extends SQLiteOpenHelper {
- /**
- * 构造方法
- *
- * @param context
- * 上下文
- * @param name
- * 数据库名称
- * @param factory
- * null
- * @param version
- * 数据库的版本号 >=1
- * 只能升级不能降级
- */
- public MyDbOpenHelper(Context context) {
- super(context,"Info.db",null,1);
- }
- /**
- * 第一次创建数据库的时候调用
- * 适合初始化数据库的表
- */
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL("create table stu(_id integer primary key autoincrement,name varchar(20),num varchar(20),money varchar(20))");
- }
- /**
- * 数据库升级时,调用
- * 修改数据库的表
- */
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- System.out.println("onUpgrade");
- }
- }
- import android.app.Activity;
- import android.content.ContentValues;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Toast;
- public class MainActivity extends Activity {@Override protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- public void trans(View v) {
- // 1. 在内存中创建数据库帮助类的对象
- MyDbOpenHelper helper = new MyDbOpenHelper(this);
- // 2. 在磁盘上创建数据库文件
- SQLiteDatabase db = helper.getWritableDatabase();
- /* ContentValues values = new ContentValues();
- values.put("name", "张三");
- values.put("money", "1");
- values.put("num", 001);
- db.insert("stu", null, values);
- ContentValues values1 = new ContentValues();
- values1.put("name", "我");
- values1.put("money", "100000000");
- values1.put("num", 002);
- db.insert("stu", null, values1);*/
- try {
- db.beginTransaction(); //开启事务
- //转账
- ContentValues values = new ContentValues();
- values.put("money", 1);
- db.update("stu", values, "name=?", new String[] {
- "张三"
- });
- //int a = 5/0;//模拟事务失败对结果的影响
- ContentValues values1 = new ContentValues();
- values1.put("money", 20000000);
- db.update("stu", values1, "name=?", new String[] {
- "Me"
- });
- db.setTransactionSuccessful(); //事务操作成功
- } catch(Exception e) {} finally {
- db.endTransaction(); //关闭事务
- }
- // 释放资源
- db.close();
- }
- public void insert(View v) {
- // 1. 在内存中创建数据库帮助类的对象
- MyDbOpenHelper helper = new MyDbOpenHelper(this);
- // 2. 在磁盘上创建数据库文件
- SQLiteDatabase db = helper.getWritableDatabase();
- /**
- * table :表名
- * nullColumnHack:
- */
- ContentValues values = new ContentValues();
- values.put("name", "张三");
- values.put("num", 123);
- long id = db.insert("stu", null, values);
- if (id == -1) {
- Toast.makeText(this, "插入失败", 0).show();
- } else {
- Toast.makeText(this, "id=" + id, 0).show();
- }
- // 释放资源
- db.close();
- }
- public void delete(View v) {
- // 1. 在内存中创建数据库帮助类的对象
- MyDbOpenHelper helper = new MyDbOpenHelper(this);
- // 2. 在磁盘上创建数据库文件
- SQLiteDatabase db = helper.getWritableDatabase();
- int id = db.delete("stu", null, null);
- if (id == 0) {
- Toast.makeText(this, "删除失败", 0).show();
- } else {
- Toast.makeText(this, "id=" + id, 0).show();
- }
- // 释放资源
- db.close();
- }
- public void update(View v) {
- // 1. 在内存中创建数据库帮助类的对象
- MyDbOpenHelper helper = new MyDbOpenHelper(this);
- // 2. 在磁盘上创建数据库文件
- SQLiteDatabase db = helper.getWritableDatabase();
- /**
- * table :表名
- * values :修改的列
- * whereClause :修改条件
- * whereArgs :修改条件的占位符
- */
- ContentValues values = new ContentValues();
- values.put("name", "songxiaobao");
- int id = db.update("stu", values, null, null);
- if (id == 0) {
- Toast.makeText(this, "删除失败", 0).show();
- } else {
- Toast.makeText(this, "id=" + id, 0).show();
- }
- // 释放资源
- db.close();
- }
- public void query(View v) {
- // 1. 在内存中创建数据库帮助类的对象
- MyDbOpenHelper helper = new MyDbOpenHelper(this);
- // 2. 在磁盘上创建数据库文件
- SQLiteDatabase db = helper.getReadableDatabase();
- /**
- * table :表名
- * columns :要查询的列
- * selection :查询条件
- * selectionArgs :查询条件的占位符
- * groupBy :分组
- * having :条件
- * orderBy :排序
- */
- Cursor cursor = db.query("stu", new String[] {
- "name",
- "num",
- "_id",
- "money"
- },
- null, null, null, null, null);
- while (cursor.moveToNext()) {
- String id = cursor.getString(2);
- String name = cursor.getString(0);
- String num = cursor.getString(1);
- String money = cursor.getString(3);
- }
- //释放资源
- cursor.close();
- // 释放资源
- db.close();
- }
- }
来源: http://www.bubuko.com/infodetail-1955861.html