前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1-SI--安卓SQLite基础使用指南

1-SI--安卓SQLite基础使用指南

作者头像
张风捷特烈
发布2018-09-26 16:31:59
6650
发布2018-09-26 16:31:59
举报
零、前言

1熟悉MySQL的学这个就像会西瓜的人去学吃哈密瓜一样简单。 2如果对MySQL不太熟悉的童鞋,可以看一下我的这篇:SpringBoot-14-MyBatis预热篇,MySQL小结 3SQLite:安卓内置轻量级的关系型数据库 4强烈建议语句什么的提前写好,在MySQL上测试一下,不然少个分号,多个逗号什么的就呵呵了 5安卓有API支持数据库操作,但感觉不怎么灵活,感兴趣的可以自己了解一下 6本篇介绍基础使用,下篇会封装一下。

坑点

1:SQLite 不支持 DEFAULT 关键字 2:INSERT INTO 的 INTO 要加上 (MySQL养成的坏毛病,得该)


一、创建数据库
1.SQL常量类:SQLCon.java
代码语言:javascript
复制
/**
 * 作者:张风捷特烈<br/>
 * 时间:2018/8/26 0026:14:48<br/>
 * 邮箱:1981462002@qq.com<br/>
 * 说明:SQL常量类
 */
public class SQLCon {
    /**
     * 数据库名
     */
    public static String DB_NAME = "weapon";

    /**
     * 数据库版本
     */
    public static int DB_VERSION = 1;

    /**
     * 建表语句
     */
    public static final String CREATE_TABLE = "CREATE TABLE sword (\n" +
            "id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,\n" +
            "name VARCHAR(32) NOT NULL,\n" +
            "atk SMALLINT UNSIGNED NOT NULL,\n" +
            "hit SMALLINT UNSIGNED NOT NULL DEFAULT 20,\n" +
            "crit SMALLINT UNSIGNED NOT NULL DEFAULT 10\n" +
            ");";
    
}
2.SQLiteOpenHelper使用:我的数据库辅助类
代码语言:javascript
复制
/**
 * 作者:张风捷特烈<br/>
 * 时间:2018/8/26 0026:14:26<br/>
 * 邮箱:1981462002@qq.com<br/>
 * 说明:我的数据库辅助类
 */
public class MySQLHelper extends SQLiteOpenHelper {

    private Context mContext;

    /**
     * 构造函数
     *
     * @param context 上下文
     */
    public MySQLHelper(Context context) {
        super(context, SQLCon.DB_NAME, null, SQLCon.DB_VERSION);
        mContext = context;
    }

    /**
     * 创建数据库,数据库存在就不会执行
     *
     * @param db SQLite数据库对象
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQLCon.CREATE_TABLE);//创建表
    }

    /**
     * 数据库进行升级
     *
     * @param db         SQLite数据库对象
     * @param oldVersion 旧版本
     * @param newVersion 新版本
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        
    }
}
3.在需要的地方使用:
代码语言:javascript
复制
MySQLHelper mySQLHelper = new MySQLHelper(this);//创建辅助对象
mySQLHelper.getWritableDatabase();//获取可写数据库对象

//getReadableDatabase()和getWritableDatabase()
//这两个方法都可以创建或打开一个现有的数据库,并返回一个可对数据库进行读写操作的对象。
//磁盘空间已满时getWritableDatabase()异常

创建数据库.png

二、升级数据库时删除表
1.SQL常量类,将数据库版本改到2:SQLCon.java
代码语言:javascript
复制
    /**
     * 数据库版本
     */
    public static int DB_VERSION = 2;
    
    /**
     * 删除表语句
     */
    public static final String DROP_TABLE = "DROP TABLE sword";
2.com.toly1994.si_sqlite.MySQLHelper#onUpgrade
代码语言:javascript
复制
db.execSQL(SQLCon.DROP_TABLE);
L.d(oldVersion+":"+newVersion+L.l());//1:2
3.在需要的地方使用
代码语言:javascript
复制
MySQLHelper mySQLHelper2 = new MySQLHelper(this);//创建辅助对象
mySQLHelper2.getWritableDatabase();//获取可写数据库对象

三、插入数据
1.SQL常量类
代码语言:javascript
复制
    /**
     * 插入语句
     */
    public static final String INSERT = "INSERT INTO sword(id,name,atk,hit,crit) VALUES" +
            "(1,'痕兮',7000,800,999)," +
            "(2,'逐暮',100,1000,10000)," +
            "(3,'风跃',9000,10,255);";
2..在需要的地方使用
代码语言:javascript
复制
mDb = new MySQLHelper(this).getWritableDatabase();
mDb.execSQL(SQLCon.INSERT);

插入数据.png


四、删除数据
1.SQL常量类
代码语言:javascript
复制
    /**
     * 删除数据
     */
    public static final String DELETE = "DELETE FROM sword WHERE id=1;";
2.在需要的地方使用
代码语言:javascript
复制
mDb = new MySQLHelper(this).getWritableDatabase();
mDb.execSQL(SQLCon.DELETE);

删除数据.png

五、修改数据
1.SQL常量类
代码语言:javascript
复制
    /**
     * 修改数据
     */
    public static final String UPDATE = "UPDATE sword SET hit=hit+1;";
2.在需要的地方使用
代码语言:javascript
复制
mDb = new MySQLHelper(this).getWritableDatabase();
mDb.execSQL(SQLCon.UPDATE);

修改数据.png

五、查询数据
1.查询所有
代码语言:javascript
复制
Cursor cursor = mDb.rawQuery("SELECT * FROM sword", null);
while (cursor.moveToNext()) {
    String id = cursor.getString(cursor.getColumnIndex("id"));
    String name = cursor.getString(cursor.getColumnIndex("name"));
    String atk = cursor.getString(cursor.getColumnIndex("atk"));
    String hit = cursor.getString(cursor.getColumnIndex("hit"));
    String crit = cursor.getString(cursor.getColumnIndex("crit"));
    System.out.println(id + "---" + name + "---" + atk + "---" + hit + "---" + crit);
}
    //2---逐暮---100---1001---10000
    //3---风跃---9000---11---255
cursor.close();//关闭游标
2.查询一个:?为占位符,后面String数组对应站位符位置,占位符可多个。
代码语言:javascript
复制
 Cursor cursor2 = mDb.rawQuery("SELECT * FROM sword WHERE id = ?", new String[]{"2"});
while (cursor2.moveToNext()) {
    String id = cursor2.getString(cursor2.getColumnIndex("id"));
    String name = cursor2.getString(cursor2.getColumnIndex("name"));
    String atk = cursor2.getString(cursor2.getColumnIndex("atk"));
    String hit = cursor2.getString(cursor2.getColumnIndex("hit"));
    String crit = cursor2.getString(cursor2.getColumnIndex("crit"));
    System.out.println(id + "---" + name + "---" + atk + "---" + hit + "---" + crit);
}
//2---逐暮---100---1001---10000
cursor2.close();//关闭游标

本文由张风捷特烈原创,转载请注明 更多安卓技术欢迎访问:https://www.jianshu.com/c/004f3fe34c94 张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com 你的喜欢与支持将是我最大的动力

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 零、前言
    • 坑点
    • 一、创建数据库
      • 1.SQL常量类:SQLCon.java
        • 2.SQLiteOpenHelper使用:我的数据库辅助类
          • 3.在需要的地方使用:
          • 二、升级数据库时删除表
            • 1.SQL常量类,将数据库版本改到2:SQLCon.java
              • 2.com.toly1994.si_sqlite.MySQLHelper#onUpgrade
                • 3.在需要的地方使用
                • 三、插入数据
                  • 1.SQL常量类
                    • 2..在需要的地方使用
                    • 四、删除数据
                      • 1.SQL常量类
                        • 2.在需要的地方使用
                        • 五、修改数据
                          • 1.SQL常量类
                            • 2.在需要的地方使用
                            • 五、查询数据
                              • 1.查询所有
                                • 2.查询一个:?为占位符,后面String数组对应站位符位置,占位符可多个。
                                相关产品与服务
                                云数据库 SQL Server
                                腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档