SQLite 数据库访问

简介: SQLite是一个很轻量的数据库。详细介绍我就不多说了,这个东西应该在嵌入式里面用得比较多。根据我看到的资料(几个月以前看的),现在安卓应用应该也会用这个,HTML5 也支持sqlite。 SQLite也支持 SQL 语句。

SQLite是一个很轻量的数据库。详细介绍我就不多说了,这个东西应该在嵌入式里面用得比较多。根据我看到的资料(几个月以前看的),现在安卓应用应该也会用这个,HTML5 也支持sqlite。

SQLite也支持 SQL 语句。它的每一个数据库都是一个后缀为db的文件

我手里有一个这样的文件,里面已经有一些数据了。

怎么访问这个数据?

1. 最简单的在 windows 平台下下载一个 SQLiteSpy 程序 

  a. File->Open Database, 选择要打开的 .db 文件

可以看到

执行一条简单的sql

2. 使用 Java JDBC 访问 SQLite 数据库

需要添加驱动依赖

<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
    <dependency>
        <groupId>org.xerial</groupId>
        <artifactId>sqlite-jdbc</artifactId>
        <version>3.23.1</version>
    </dependency>

java代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class App {
    
    public static void main(String[] args) {
        String url = "jdbc:sqlite:sqlDb.db";
        Connection conn = null;
        PreparedStatement pStatement = null;
        ResultSet resultSet = null;
        
        
        try {
            Class.forName("org.sqlite.JDBC");
            conn = DriverManager.getConnection(url);
            pStatement = conn.prepareStatement("select * from `AccLvl`");
            resultSet = pStatement.executeQuery();
            while(resultSet.next()) {
                System.out.println("AccLvlNum:" + resultSet.getInt("AccLvlNum") + " " + "timeZoneTableId: " + resultSet.getInt("timeZoneTableId") + " " + "lastModified: " + resultSet.getTimestamp("lastModified"));
            }
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            
            try {
                if(resultSet != null) {
                    resultSet.close();
                }
                if(pStatement != null) {
                    pStatement.close();
                }
                if(conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

程序执行结果

AccLvlNum:0 timeZoneTableId: 0 lastModified: 1970-01-19 01:55:17.192
AccLvlNum:1 timeZoneTableId: 1 lastModified: 1970-01-19 01:55:17.192
AccLvlNum:2 timeZoneTableId: 2 lastModified: 1970-01-19 01:55:17.192
AccLvlNum:3 timeZoneTableId: 3 lastModified: 1970-01-19 01:55:17.192
AccLvlNum:4 timeZoneTableId: 4 lastModified: 1970-01-19 01:55:17.193
AccLvlNum:5 timeZoneTableId: 5 lastModified: 1970-01-19 01:55:17.193
AccLvlNum:6 timeZoneTableId: 6 lastModified: 1970-01-19 01:55:17.193
AccLvlNum:7 timeZoneTableId: 7 lastModified: 1970-01-19 01:55:17.193
AccLvlNum:8 timeZoneTableId: 8 lastModified: 1970-01-19 01:55:17.193
AccLvlNum:9 timeZoneTableId: 9 lastModified: 1970-01-19 01:55:17.194
AccLvlNum:10 timeZoneTableId: 10 lastModified: 1970-01-19 01:55:17.194
AccLvlNum:11 timeZoneTableId: 11 lastModified: 1970-01-19 01:55:17.194
AccLvlNum:12 timeZoneTableId: 12 lastModified: 1970-01-19 01:55:17.194
AccLvlNum:13 timeZoneTableId: 13 lastModified: 1970-01-19 01:55:17.194
AccLvlNum:14 timeZoneTableId: 14 lastModified: 1970-01-19 01:55:17.194
AccLvlNum:15 timeZoneTableId: 15 lastModified: 1970-01-19 01:55:17.195
AccLvlNum:16 timeZoneTableId: 16 lastModified: 1970-01-19 01:55:17.195
AccLvlNum:17 timeZoneTableId: 17 lastModified: 1970-01-19 01:55:17.195

 

3. linux 访问(Ubuntu)

首先安装 sqlite3

sudo apt-get install sqlite3

然后创建一个数据库,之前说了sqlite 的数据库就是一个 db 文件。 然后就可以进行数据库操作了,大体语法跟mysql是一样的,有细微的区别

vmware@ubuntu:~/frank$ sqlite3 test.db
SQLite version 3.11.0 2016-02-15 17:29:24
Enter ".help" for usage hints.
sqlite> .table
sqlite> create table t_user(
   ...> id integer primary key autoincrement,
   ...> name varchar(20) not null,
   ...> password varchar(20) not null
   ...> );
sqlite> insert into t_user(name, password) values ('jordan','1234'),('kobe', '3456'),('james', '7890');
sqlite> select * from t_user;
1|jordan|1234
2|kobe|3456
3|james|7890
sqlite> select * from t_user where name='kobe';
2|kobe|3456
sqlite> 

用到的sql

.table
create table t_user(
id integer primary key autoincrement,
name varchar(20) not null,
password varchar(20) not null
);
insert into t_user(name, password) values ('jordan','1234'),('kobe', '3456'),('james', '7890');
select * from t_user
select * from t_user where name='kobe';

 

相关文章
|
2月前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与最佳实践
在微服务架构中,数据库访问的效率直接影响到系统的性能和可扩展性。本文探讨了优化微服务架构中数据库访问的策略与最佳实践,包括数据分片、缓存策略、异步处理和服务间通信优化。通过具体的技术方案和实例分析,提供了一系列实用的建议,以帮助开发团队提升微服务系统的响应速度和稳定性。
|
4天前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
15 8
|
2天前
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
16 2
|
15天前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
21 4
|
23天前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
30 3
|
24天前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
2月前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
|
14天前
|
存储 缓存 关系型数据库
sqlite 数据库 介绍
sqlite 数据库 介绍
29 0
|
2月前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
|
2月前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与实践
随着微服务架构的普及,如何高效管理和优化数据库访问成为了关键挑战。本文探讨了在微服务环境中优化数据库访问的策略,包括数据库分片、缓存机制、异步处理等技术手段。通过深入分析实际案例和最佳实践,本文旨在为开发者提供实际可行的解决方案,以提升系统性能和可扩展性。