android连接本地数据库sqlite,实现增删改查

前言

Android应用数据存储简单来说有这么几种:文件存储、SharedPreference存储、SQLite数据库存储、网络服务器存储、ContentProvider等。如果需要存储的数据量大的时候,那么使用文件存储会有很大的弊端,例如:你想修改其中很微小的项就要先读取整个文件的内容,修改后再全部保存,非常耗时。SharedPerference大多数用来存储键值对形式的少量数据。所以学习使用SQLite来存储数据还是很有必要的。

1.android连接本地数据库需要继承SQLiteOpenHelper类如下:

package com.demo.safetydrill.db;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

\*\*

\* 初始化数据库

\*

public class DBHelper extends SQLiteOpenHelper {
    
    

    //创建用户表

    private static final String CREATE\_USER = "create table user(id integer primary key autoincrement, user\_name text not null, phone text not null, role text not null, password text not null, create\_date text not null);";

    //创建项目

    private static final String CREATE\_PROJECT = "create table project(id integer primary key autoincrement, title text not null, des1 text not null, des2 text not null, video text not null, state text not null, evaluate1 text not null, evaluate2 text not null, evaluate3 text not null, companyId text not null, create\_date text not null);";

    //数据库版本

    public static final int DATABASE\_VERSION = 1;

    //数据库名

    public static final String DATABSE\_NAME = "safety.db";

    public DBHelper(Context context) {
    
    

        super(context, DATABSE\_NAME, null, DATABASE\_VERSION);

        // TODO Auto-generated constructor stub

    }

    @Override

    public void onCreate(SQLiteDatabase db) {
    
    

        db.execSQL(CREATE\_USER);

        db.execSQL(CREATE\_PROJECT);

    }

    @Override

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
    

        onCreate(db);

    }

}

2.创建实体类如用户类:

**package com.demo.safetydrill.bean;  
**

import java.io.Serializable;

//用户实体类

public class UserBean implements Serializable {
    
    

    //主键

    private int id;

    //用户姓名

    private String user\_name;

    //手机号

    private String phone;

    //角色(0企业,1管理员,2专家)

    private String role;

    //密码

    private String password;

    //创建时间

    private String create\_date;

    public int getId() {
    
    

        return id;

    }

    public void setId(int id) {
    
    

        this.id = id;

    }

    public String getUser\_name() {
    
    

        return user\_name;

    }

    public void setUser\_name(String user\_name) {
    
    

        this.user\_name = user\_name;

    }

    public String getPhone() {
    
    

        return phone;

    }

    public void setPhone(String phone) {
    
    

        this.phone = phone;

    }

    public String getRole() {
    
    

        return role;

    }

    public void setRole(String role) {
    
    

        this.role = role;

    }

    public String getPassword() {
    
    

        return password;

    }

    public void setPassword(String password) {
    
    

        this.password = password;

    }

    public String getCreate\_date() {
    
    

        return create\_date;

    }

    public void setCreate\_date(String create\_date) {
    
    

        this.create\_date = create\_date;

    }

    @Override

    public String toString() {
    
    

        return "UserBean{" +

                "id=" + id +

                ", user\_name='" + user\_name + '\\'' +

                ", phone='" + phone + '\\'' +

                ", role='" + role + '\\'' +

                ", password='" + password + '\\'' +

                ", create\_date='" + create\_date + '\\'' +

                '}';

    }

}

3.实现增删改查功能类

**package com.demo.safetydrill.db;  
**

import android.content.ContentValues;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.util.Log;

import com.demo.safetydrill.MyApp;

import com.demo.safetydrill.bean.UserBean;

import java.util.ArrayList;

import java.util.List;

public class UserDao {
    
    

    //添加

    public static boolean add(UserBean bean) {
    
    

        DBHelper helper = new DBHelper(MyApp.mApp);

        SQLiteDatabase db = helper.getReadableDatabase();

        ContentValues values = new ContentValues();

        values.put("user\_name", bean.getUser\_name());

        values.put("create\_date", bean.getCreate\_date());

        values.put("phone", bean.getPhone());

        values.put("role", bean.getRole());

        values.put("password", bean.getPassword());

        long result = db.insert("user", null, values);

        db.close();

        helper.close();

        boolean f = false;

        if (result > 0) {
    
    

            f = true;

        }

        return f;

    }

    //更新

    public static boolean update(UserBean bean) {
    
    

        DBHelper helper = new DBHelper(MyApp.mApp);

        SQLiteDatabase db = helper.getReadableDatabase();

        ContentValues values = new ContentValues();

        values.put("user\_name", bean.getUser\_name());

        values.put("create\_date", bean.getCreate\_date());

        values.put("phone", bean.getPhone());

        values.put("role", bean.getRole());

        values.put("password", bean.getPassword());

        int result = db.update("user", values, "id=?", new String\[\]{
    
    String.valueOf(bean.getId())});

        db.close();

        helper.close();

        boolean f = false;

        if (result > 0) {
    
    

            f = true;

        }

        return f;

    }

    //删除

    public static boolean delete(String id) {
    
    

        DBHelper helper = new DBHelper(MyApp.mApp);

        SQLiteDatabase db = helper.getWritableDatabase();

        int result = db.delete("user", "id=?", new String\[\]{
    
    id});

        db.close();

        helper.close();

        boolean f = false;

        if (result > 0) {
    
    

            f = true;

        }

        return f;

    }

    //获取所有数据

    public static List<UserBean> getList() {
    
    

        try {
    
    

            DBHelper helper = new DBHelper(MyApp.mApp);

            SQLiteDatabase db = helper.getWritableDatabase();

            List<UserBean> list = new ArrayList<>();

            Cursor cursor = db.query("user", null, null, null, null, null,

                    null);

            while (cursor.moveToNext()) {
    
    

                UserBean bean = new UserBean();

                bean.setId(getInt(cursor, "id"));

                bean.setUser\_name(getString(cursor, "user\_name"));

                bean.setCreate\_date(getString(cursor, "create\_date"));

                bean.setPhone(getString(cursor, "phone"));

                bean.setPassword(getString(cursor, "password"));

                bean.setRole(getString(cursor, "role"));

                list.add(bean);

            }

            db.close();

            helper.close();

            if (!list.isEmpty()) {
    
    

                return list;

            }

        } catch (Exception e) {
    
    

        }

        return null;

    }

    //获取所有数据

    public static UserBean getBeanByPhone(String phone,String role) {
    
    

        try {
    
    

            DBHelper helper = new DBHelper(MyApp.mApp);

            SQLiteDatabase db = helper.getWritableDatabase();

            Cursor cursor = db.query("user", null, "phone='" + phone+"' and role='" + role+"'", null, null, null,

                    null);

            UserBean bean = null;

            if (cursor.moveToNext()) {
    
    

                bean = new UserBean();

                bean.setId(getInt(cursor, "id"));

                bean.setUser\_name(getString(cursor, "user\_name"));

                bean.setCreate\_date(getString(cursor, "create\_date"));

                bean.setPhone(getString(cursor, "phone"));

                bean.setPassword(getString(cursor, "password"));

                bean.setRole(getString(cursor, "role"));

            }

            db.close();

            helper.close();

            return bean;

        } catch (Exception e) {
    
    

            Log.e("Exception->",e.getMessage(),e);

        }

        return null;

    }

    private static int getInt(Cursor cursor, String name) {
    
    

        return cursor.getInt(cursor.getColumnIndex(name));

    }

    private static String getString(Cursor cursor, String name) {
    
    

        return cursor.getString(cursor.getColumnIndex(name));

    }

}

4.其他就可以调用数据库的增删改查功能写业务逻辑了。

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
在这里插入图片描述
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

全套视频资料:

一、面试合集

在这里插入图片描述
二、源码解析合集
在这里插入图片描述

三、开源框架合集
在这里插入图片描述
欢迎大家一键三连支持,若需要文中资料,直接扫描文末CSDN官方认证微信卡片免费领取↓↓↓

猜你喜欢

转载自blog.csdn.net/datian1234/article/details/129994970