第七讲Android中的SQLite

   日期:2020-09-27     浏览:92    评论:0    
核心提示:SQLite1.SQLite的简介2.SQLite的操作3.SQLite中事务的处理4.SQLiteOpenHelper类1.SQLite的简介SQLite,是一款轻型的数据库,它的设计目标是嵌入式产品,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。Android中使用SQLiteDatabase代表数据库,并且提供一系列的方法来操作数据。2.SQLite的操作1.创建或者打开数据库database = SQLiteDatabase.openOrCreateDataba

SQLite

    • 1.SQLite的简介
    • 2.SQLite的操作
    • 3.SQLite中事务的处理
    • 4.SQLiteOpenHelper类

1.SQLite的简介

SQLite,是一款轻型的数据库,它的设计目标是嵌入式产品,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

Android中使用SQLiteDatabase代表数据库,并且提供一系列的方法来操作数据。

2.SQLite的操作

1.创建或者打开数据库

database = SQLiteDatabase.openOrCreateDatabase(path + "/mydb.db",
                null);

2.创建数据库表

 String createSQL = "CREATE TABLE EMPLOYEE(" +
                        "ID INTEGER PRIMARY KEY AUTOINCREMENT," +
                        "NAME TEXT," +
                        "SALARY FLOAT)";
                database.execSQL(createSQL);//执行SQL语句
                break;

3.插入数据

  ContentValues newData = new ContentValues();
                //添加数据时,第一个参数必须同数据库表中字段名称一致
                newData.put("name", "张三");
                newData.put("salary", 4000.0f);
                //第二个参数是当第三个参数为null时起作用
                long rowId = database.insert("employee",null, newData);
                Log.e("新插入的记录的id",rowId+"");
                break;

4.查询数据库表

 Cursor result = database.query("EMPLOYEE",null,
                        null,null,null,null,null);
                //将游标移动到第一条记录
                if (result.moveToFirst()){ 
                    ArrayList<Employee> employees = new ArrayList<>();
                    do { 
                       Employee employee = new Employee();
                       //getColumnIndex方法区分字段名的大小写
                       employee.setName(result.getString(
                               result.getColumnIndex("NAME")));
                       employee.setSalary(result.getFloat(
                               result.getColumnIndex("SALARY")));
// Log.e("职工信息",employee.toString());
                        employees.add(employee);
                    }while (result.moveToNext());
                    Log.e("AAA", employees.toString());
                }
                break;

5.修改数据

 ContentValues updateData = new ContentValues();
                updateData.put("SALARY", 5000.0f);
                int row = database.update("EMPLOYEE",updateData,
                        "name=?", new String[]{ "张三"});
                Log.e("修改的行数", row + "");
                break;

6.删除数据

   int rowNum = database.delete("EMPLOYEE",
                        "ID=?",new String[]{ "3"});
                Log.e("删除的条数",rowNum+"");
                break;

3.SQLite中事务的处理

1.事务处理

 //处理事务
                //开启数据库事务
                database.beginTransaction();
                //事务操作
                try { 
                    for (int i = 0; i < 3; i++){ 
                        ContentValues values = new ContentValues();
                        values.put("name","李四");
                        values.put("salary",3000.0f);
                        database.insert("employee",null,values);
                    }
                    database.setTransactionSuccessful();//设置事务成功执行
                }finally { 
                    //结束事务
                    //判断:如果执行了setTransactionSuccessful方法就提交事务
                    //否则回滚事务
                    database.endTransaction();
                }

                break;

4.SQLiteOpenHelper类

Android提供SQLiteOpenHelper类来管理数据库。主要负责数据库的创建、版本更新,一般情况通过创建它的子类并扩展onCreate()和onUpgrade()方法来实现。
使用步骤:
1.自定义MyDBHelper类继承自SQLiteOpenHelper类

public class MyDBHelper extends SQLiteOpenHelper { 
    public MyDBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) { 
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) { 
        //创建数据库表,第一次打开数据库时调用,仅执行一次
        String createSQL = "CREATE TABLE EMPLOYEE(" +
                "ID INTEGER PRIMARY KEY AUTOINCREMENT," +
                "NAME TEXT," +
                "SALARY FLOAT)";
        db.execSQL(createSQL);//执行SQL语句
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
        //更新数据库时执行
        Log.e("MyDBHelper","onUpgrade");
    }
}

2.用MyHelper来创建数据库

 MyDBHelper myDBHelper = new MyDBHelper(this,
                "employee.db", null, 3);//数据库的版本号
        database = myDBHelper.getWritableDatabase();
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服