Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >sqlite数据库

sqlite数据库

作者头像
acc8226
发布于 2022-05-17 13:09:24
发布于 2022-05-17 13:09:24
54500
代码可运行
举报
文章被收录于专栏:叽叽西叽叽西
运行总次数:0
代码可运行
  • 创建Entry的内部类, 该类实现BaseColumns
  • tableName定义常量字符串
  • 为table的每一项什么常量字符串
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.android.waitlist.data;

import android.provider.BaseColumns;

public class WaitlistContract {

    // COMPLETED (1) Create an inner class named WaitlistEntry class that implements the BaseColumns interface
    public static final class WaitlistEntry implements BaseColumns {
        // COMPLETED (2) Inside create a static final members for the table name and each of the db columns
        public static final String TABLE_NAME = "waitlist";
        public static final String COLUMN_GUEST_NAME = "guestName";
        public static final String COLUMN_PARTY_SIZE = "partySize";
        public static final String COLUMN_TIMESTAMP = "timestamp";
    }

}

创建数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.android.waitlist.data;


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import com.example.android.waitlist.data.WaitlistContract.*;

// COMPLETED (1) extend the SQLiteOpenHelper class
public class WaitlistDbHelper extends SQLiteOpenHelper {

    // COMPLETED (2) Create a static final String called DATABASE_NAME and set it to "waitlist.db"
    // The database name
    private static final String DATABASE_NAME = "waitlist.db";

    // COMPLETED (3) Create a static final int called DATABASE_VERSION and set it to 1
    // If you change the database schema, you must increment the database version
    private static final int DATABASE_VERSION = 1;

    // COMPLETED (4) Create a Constructor that takes a context and calls the parent constructor
    // Constructor
    public WaitlistDbHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // COMPLETED (5) Override the onCreate method
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {

        // COMPLETED (6) Inside, create an String query called SQL_CREATE_WAITLIST_TABLE that will create the table
        // Create a table to hold waitlist data
        final String SQL_CREATE_WAITLIST_TABLE = "CREATE TABLE " + WaitlistEntry.TABLE_NAME + " (" +
                WaitlistEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
                WaitlistEntry.COLUMN_GUEST_NAME + " TEXT NOT NULL, " +
                WaitlistEntry.COLUMN_PARTY_SIZE + " INTEGER NOT NULL, " +
                WaitlistEntry.COLUMN_TIMESTAMP + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP" +
                "); ";

        // COMPLETED (7) Execute the query by calling execSQL on sqLiteDatabase and pass the string query SQL_CREATE_WAITLIST_TABLE
        sqLiteDatabase.execSQL(SQL_CREATE_WAITLIST_TABLE);
    }

    // COMPLETED (8) Override the onUpgrade method
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
        // For now simply drop the table and create a new one. This means if you change the
        // DATABASE_VERSION the table will be dropped.
        // In a production app, this method might be modified to ALTER the table
        // instead of dropping it, so that existing data is not deleted.
        // COMPLETED (9) Inside, execute a drop table query, and then call onCreate to re-create it
        sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + WaitlistEntry.TABLE_NAME);
        onCreate(sqLiteDatabase);
    }
}

更新数据库

  1. 版本号增加
  2. 修改onCreate中执行的sql语句, onUpgrade按需求做适量更改.

检查表中某列是否存在

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     /**
     * 检查表中某列是否存在
     * @param db
     * @param tableName 表名
     * @param columnName 列名
     * @return
     */
     public static boolean checkColumnExists(SQLiteDatabase db, String tableName, String columnName) {
         boolean result = false ;
         Cursor cursor = null ;
         try{
             cursor = db.rawQuery( "select * from sqlite_master where name = ? and sql like ?"
                , new String[]{tableName , "%" + columnName + "%"} );
             result = null != cursor && cursor.moveToFirst() ;
         }catch (Exception e){
             e.printStackTrace();
         }finally{
             if(null != cursor && !cursor.isClosed()){
                 cursor.close() ;
             }
         }
         return result ;
     }

数据库的修复

比如手机程序对.db的不当操作造成. $ sqlite3 backup.sqlite sqlite> .output “_temp.tmp” sqlite> .dump sqlite> .quit

$ sqlite3 new.sqlite sqlite> .read “_temp.tmp” sqlite> .quit 就将错误的backup.sqlite修复为new.sqlite了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
linux 网卡重启_linux查看网卡是否up
linux重启网卡命令有:1、命令【service network restart】;2、命令【ifconfig eth0 down / ifconfig eth0 up】;3、命令【ifdown eth0 / ifup eth0】。
全栈程序员站长
2022/11/09
45.7K0
linux 网卡重启_linux查看网卡是否up
CentOS 7 网络配置
今天在一台PC上安装了CentOS 7,当时选择了最小安装模式,安装完成后马上用ifconfig查看本机的ip地址(局域网已经有DHCP),发现报错,提示ifconfig命令没找到。 [root@ce
Dlimeng
2023/06/27
7570
Linux 服务器更换主板后,网卡识别失败的处理方法
由于集群是生信所有分析工作的基础,我们所用的 IBM LSF 集群一共有 30 多个计算节点,其中还包括了 2 个大内存 fat 节点,log 节点挂掉后,整个生信部门几十号人的工作都没法正常进行,情况可谓是非常紧迫。负责硬件的同事在加班加点联系供应商更换主板后,终于可以把系统启动起来,但是问题也来了:
章鱼猫先生
2021/10/15
5K0
Linux 服务器更换主板后,网卡识别失败的处理方法
Linux重启网卡的方法「建议收藏」
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
5.8K0
Linux服务器更换主板后,网卡识别失败的处理方法
1)现象说明 公司IDC机房里的一台线上服务器硬件报警,最后排查发现服务器主板坏了,随即联系厂商进行更换主板,最后更换后,登录服务器,发现网卡绑定及ip信息都在,但是ip却ping不同了,进一步排查,重启网卡,提示之前的eth0和eth1网卡设备发现不了了,也就是说服务器主板更换后,之前的网卡设备都识别不了了! 主板更换后,重启并登陆服务器,发现之前的网卡设备(eth0、eth1、eth2、eth3)都没有了! [root@kevin01 ~]# ifconfig -a bond0 Link enc
洗尽了浮华
2018/03/28
4.8K0
ubuntu16.04配置网卡「建议收藏」
注意:不同的linux系统,网卡配置文件是不同的,这里ubuntu的网卡配置文件是/etc/network/interfaces。
全栈程序员站长
2022/09/01
3.8K0
ubuntu16.04配置网卡「建议收藏」
如何配置Linux系统的IP地址?
如何配置Linux系统的IP地址,使其能够连接局域网甚至外网。其实这并不难,Linux系统网络配置的方法有多种。
码农编程进阶笔记
2021/07/20
25.2K0
Linux配置IP地址的方法
注:虚拟机系统通过克隆方式得到其他系统后,在同一网络中无法上网,很可能由于其网卡的UUID相同造成冲突引起的。 解决方案:
全栈程序员站长
2022/06/26
8.6K0
Linux系统之Bonding 网卡绑定配置方法
Linux系统之Bonding 网卡绑定配置方法一、检查本地系统环境1.检查系统版本[root@Server001 ~]# cat /etc/os-release NAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_U
江湖有缘
2023/01/21
6.5K0
Linux系统之Bonding 网卡绑定配置方法
ubuntu16.04重启网络服务命令_ubuntu重启服务器命令
在更改网络配置后,我们需要重启网络服务使更改生效。在centos系统中,我们可以通过以下命令重启网络服务:
全栈程序员站长
2022/11/07
3K0
Linux系统之网卡子接口配置方法
江湖有缘
2023/10/01
1.6K0
Linux系统之网卡子接口配置方法
linux网卡配置
/etc/sysconfig/network-scripts/ifcfg-ens33
阿七日记
2022/01/17
20.8K0
linux系统查看IP地址,不显示IP地址或者只显示127.0.0.1
2.2.异常情况2:查看当前linux的IP地址时,IP地址显示为127.0.0.1
全栈程序员站长
2022/11/03
13.4K0
Linux如何设置IP地址_linux添加ip
对于很多刚刚接触linux的朋友来说,如何设置linux系统的IP地址,作为第一步,下面学习啦小编以centos系统为例,给大家演示如何给centos设置IP地址
全栈程序员站长
2022/11/01
27.1K0
Linux如何设置IP地址_linux添加ip
linux 查看网卡以及开启网卡
我们安装好了一个虚拟机,我想做分布式集群,想模拟几台服务器,这时就想直接复制已经有的安装好的虚拟机,这样比较省事,不要在重复的安装虚拟机并配置JAVA环境,省掉做同样的事情,这时直接复制,这样之前配置的JAVA环境都有了。
全栈程序员站长
2022/11/02
35K0
linux 查看网卡以及开启网卡
centos6配置vnc登录远程物理机及vb复制vdi启动虚拟机网络问题
2、启动VNC服务 # vncserver You will require a password to access your desktops. Password: Verify: 会提示输入密码,这个密码是远程登录时所需要输入的密码。 我尝试无密码登录,好像还不行,必须整个密码。这里要关闭防火墙,/etc/init.d/iptables stop
流柯
2018/08/30
7700
Linux 学习笔记之超详细基础linux命令(the end)
---------------------------------接Part 14------------------------------
授客
2019/09/11
1.1K0
【详解】CentOS6Linux系统添加永久静态路由的方法
在Linux系统中,特别是对于服务器管理而言,正确配置网络路由是确保网络通信顺畅的重要步骤。本文将介绍如何在CentOS 6系统中添加永久静态路由。通过本文的学习,你将能够掌握如何在不影响现有网络配置的情况下,为你的系统添加一条或多条静态路由。
大盘鸡拌面
2025/03/16
1980
客户无法恢复网卡,无法访问网络(Linux系统)
通过cd /etc/sysconfig/network-scripts/进入网卡配置目录后通过cat ifcfg-eth0查看配置的网卡信息。
逸轩
2021/09/10
4.6K0
第二章,ubuntu系统的查看防火墙,切换root用户,设置固定ip、系统时间等
第一次接触ubuntu系统,之前用的都是centos系统,因此也需要知道ubuntu的基本操作,跟centos的差别还是很大的。
全栈程序员站长
2022/08/05
2K0
第二章,ubuntu系统的查看防火墙,切换root用户,设置固定ip、系统时间等
推荐阅读
相关推荐
linux 网卡重启_linux查看网卡是否up
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验