SQLite数据库学习笔记
发布时间:2020-12-12 23:54:06 所属栏目:百科 来源:网络整理
导读:这两天学习了 SQLite数据库,做下学习笔记。 SQLite数据库 为嵌入型数据库。 1、抽象类SQLiteOpenHelper为数据库建立连接,其子类DBOpenHelper实现父类onCreate、和onUpgrade并调用父类的构造方法 /** * */package edu.fjnu.sqlite.service;import android.c
这两天学习了 SQLite数据库,做下学习笔记。SQLite数据库为嵌入型数据库。 1、抽象类SQLiteOpenHelper为数据库建立连接,其子类DBOpenHelper实现父类onCreate、和onUpgrade并调用父类的构造方法
/** * */ package edu.fjnu.sqlite.service; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * @author Kysann * */ public class DBOpenHelper extends SQLiteOpenHelper { private static final String DB_NAME = "stumgr.db"; private static final Integer DB_VERSION = 1; public DBOpenHelper(Context context) { super(context,DB_NAME,null,DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table student(_id Integer primary key autoincrement,stu_name varchar(30),stu_pwd varchar(30))"); } @Override public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) { // TODO Auto-generated method stub } } 2、通过 DBOpenHelper 的 dbHelper.getWritableDatabase(); / dbHelper.getReadableDatabase();获取SQLiteDatabase实例进行对数据库的操作。
/** * */ package edu.fjnu.sqlite.service; import java.util.ArrayList; import java.util.List; import edu.fjnu.sqlite.domain.Student; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; /** * @author Kysann * */ public class StudentService { private static final String SQL_INSERT = "insert into student values(null,?,?)"; private static final String SQL_UPDATE = "update student set stu_name=?,stu_pwd=? where _id=?"; private static final String SQL_DELETE = "delete from student where _id=?"; private static final String SQL_LOAD = "select * from student limit ?,?"; private static final String SQL_SELECT = "select * from student where _id=?"; private static final String SQL_COUNT = "select count(*) from student"; private DBOpenHelper dbHelper; private SQLiteDatabase db; public StudentService(Context context) { this.dbHelper = new DBOpenHelper(context); } public void doInsert(Student stu){ db = dbHelper.getWritableDatabase(); db.execSQL(SQL_INSERT,new Object[]{stu.getStuName(),stu.getStuPwd()}); } public void updateStu(Student stu){ db = dbHelper.getWritableDatabase(); db.execSQL(SQL_UPDATE,stu.getStuPwd(),stu.getStuId()}); } public void delStu(Integer id){ db = dbHelper.getWritableDatabase(); db.execSQL(SQL_DELETE,new Object[]{id}); } public Student LoadById(Integer id){ Student stu = new Student(); db = dbHelper.getReadableDatabase(); Cursor cursor = db.rawQuery(SQL_SELECT,new String[]{id.toString()}); if(cursor.moveToNext()){ stu.setStuId(cursor.getInt(cursor.getColumnIndex("_id"))); stu.setStuName(cursor.getString(cursor.getColumnIndex("stu_name"))); stu.setStuPwd(cursor.getString(cursor.getColumnIndex("stu_pwd"))); } return stu; } public List<Student> LoadAll(Integer start,Integer end){ List<Student> stuList = new ArrayList<Student>(); db = dbHelper.getReadableDatabase(); Cursor cursor = db.rawQuery(SQL_LOAD,new String[]{start.toString(),end.toString()}); while(cursor.moveToNext()){ Student stu = new Student(); stu.setStuId(cursor.getInt(cursor.getColumnIndex("_id"))); stu.setStuName(cursor.getString(cursor.getColumnIndex("stu_name"))); stu.setStuPwd(cursor.getString(cursor.getColumnIndex("stu_pwd"))); stuList.add(stu); } return stuList; } public Integer count(){ Integer count = 0; db = dbHelper.getReadableDatabase(); Cursor cursor = db.rawQuery(SQL_COUNT,null); cursor.moveToFirst(); count = cursor.getInt(0); return count; } } 3、SQLite事务操作,通过db.beginTransaction();开启事务,db.setTransactionSuccessful();设置事务执行成功标志,最后再执行db.endTransaction();提交事务。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |