创建sqlite数据库

SQLite数据库操作
本文介绍了一个简单的SQLite数据库操作示例,包括数据库的创建、增删改查等基本操作,并通过单元测试验证功能。提供了使用SQLiteOpenHelper类创建数据库的方法,以及如何进行数据的插入、更新、删除和查询。
实现SQLiteOpenHelper 创建数据库

package com.example.test;

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

/**
 * Created by joy on 2015/12/26.
 */
public class MyDBHelper extends SQLiteOpenHelper {
    private final static String DB_NAME="person.db";
    public MyDBHelper(Context context) {
        //第一个参数上下文,第二个参数数据库名,第三个参数游标工厂,第四个参数数据库版本号
        //数据库文件保存在data/data/包名/databases/person.db
        super(context, DB_NAME, null, 2);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //数据库创建时调用
        db.execSQL("create table person(_id integer primary key autoincrement,name varchar(20),age varchar(2))");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //数据库升级时调用
        Log.e("gjj","数据库更新了");
    }
}

单元测试中测试数据库

package com.example.test;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.test.InstrumentationTestCase;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Created by joy on 2015/12/26.
 */
public class DBTest extends InstrumentationTestCase {
    MyDBHelper helper;
    SQLiteDatabase db;


    //单元测试中设置全局变量 setup对应teardown
    @Override
    protected void setUp() throws Exception {
        super.setUp();
        helper = new MyDBHelper(getInstrumentation().getTargetContext());
        db = helper.getWritableDatabase();

    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
        db.close();
    }


    /**
     * 插入数据
     */
    public void testInsert() {
        for (int i = 0; i < 50; i++) {
            db.execSQL("insert into person values(null,?,?)", new Object[]{"顾建健", i + ""});
        }

    }

    public void testInsert2() {
        ContentValues values=new ContentValues();
        values.put("name","我是顾建健");
        values.put("age","今年27岁了");
        //insert("表名","一般设置为NULL",ContentValues对象)
        //第二个参数(如果values为null,指定第二个参数table中其中的列,让系统给其赋值NULL);
        db.insert("person",null,values);

    }


    /**
     * 更新数据
     */
    public void testUpdate() {
        db.execSQL("update person set name=? where _id=?", new Object[]{"aaa", 23});
    }

    public void testUpdate2() {
        ContentValues values=new ContentValues();
        values.put("name","我是顾建健");
        values.put("age","今年27岁了");
        db.update("person", values, "_id=?", new String[]{1 + ""});
    }


    /**
     * 删除数据
     */
    public void testDel() {
        db.execSQL("delete from person where _id=?", new Object[]{23});
    }

    public void testDel2() {
        db.delete("person", "_id=?", new String[]{25 + ""});

    }


    /**
     * 查询数据
     */
    public void testQuery() {
        List<String> list=new ArrayList<>();
        Cursor cursor = db.rawQuery("select name,age from person", null);
        while (cursor.moveToNext()) {
            String name = cursor.getString(0);//对应name
            String age = cursor.getString(1);//对应pass
           list.add("name:"+name+",age"+age);

        }
        Iterator i=list.iterator();
        while(i.hasNext()){
            System.out.println(i.next().toString());
        }

    }

    /**
     * 事务..保证多条SQL语句同时成功同时失败
     */

    public void testTrans(){
        try{
            db.beginTransaction();
            ContentValues values=new ContentValues();
            values.put("name","顾大哥");
            values.put("age",25);
            db.update("person", values, "_id=?", new String[]{2 + ""});

            values.clear();
            values.put("name", "顾大哥");
            values.put("age",29);
            db.update("person", values, "_id=?", new String[]{3 + ""});
            db.setTransactionSuccessful();
        }finally {
            db.endTransaction();
        }

    }
}
### 使用 DBeaver 创建 SQLite 数据库 DBeaver 是一个功能强大的开源数据库管理工具,支持多种数据库型,SQLite。以下是使用 DBeaver 创建 SQLite 数据库的详细步骤: #### 1. 安装并启动 DBeaver - 下载并安装 [DBeaver](https://dbeaver.io/download/)。 - 启动 DBeaver 应用程序。 #### 2. 创建新的数据库连接 - 在 DBeaver 主界面中,点击顶部菜单栏的 **"数据库"**,然后选择 **"新建数据库连接"**。 - 在弹出的窗口中,找到左侧的数据库列表,展开 **"SQLite"**。 - 选择 **"SQLite/SQLite"**,然后点击 **"下一步"**。 #### 3. 配置 SQLite 数据库 - 点击 **"浏览"** 按钮,在本地文件系统中选择 SQLite 数据库文件(如果尚未创建,则可以留空)。 - 如果没有现有数据库文件,DBeaver 将在指定路径自动创建一个新的 SQLite 数据库文件。 - 输入或选择目标文件路径后,点击 **"完成"**。 #### 4. 连接并验证数据库 - 返回主界面后,确认新创建数据库连接显示在左侧的数据库导航树中。 - 右键点击该连接,选择 **"连接"**。 - 成功连接后,可以通过 DBeaver 的图形化界面执行 SQL 查询、创建表、插入数据等操作。 #### 5. 执行 SQL 命令创建表 - 点击顶部菜单栏中的 **"SQL 编辑器"**,选择 **"新建 SQL 编辑器"**。 - 输入相应的 SQL 语句来定义数据库结构。例如: ```sql CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT NOT NULL UNIQUE ); ``` - 点击运行按钮执行 SQL 脚本。 #### 6. 管理和维护数据库 - 可以通过 DBeaver 的对象浏览器查看数据库对象(如表、索引、视图等)。 - 使用内置工具进行数据导入导出、备份恢复等操作。 --- ### 示例代码:创建简单表 以下是一个简单的 SQL 脚本示例,用于在 SQLite创建一个含用户信息的表: ```sql -- 创建用户表 CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER, email TEXT NOT NULL UNIQUE ); -- 插入示例数据 INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com'); INSERT INTO users (name, age, email) VALUES ('Bob', 25, 'bob@example.com'); ``` --- ### 注意事项 - SQLite 数据库存储为单个文件,因此需要确保文件路径的读写权限正确[^1]。 - 如果数据库文件不存在,DBeaver 会自动创建它。 - SQLite 不支持多用户的并发写入,适用于轻量级应用场景。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值