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';

 

相关文章
|
15天前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
135 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
1天前
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
15 6
|
8天前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
36 6
|
6天前
|
SQL 关系型数据库 分布式数据库
PolarDB Proxy配置与优化:提升数据库访问效率
【9月更文挑战第6天】PolarDB是阿里云推出的高性能分布式关系型数据库,PolarDB Proxy作为其关键组件,位于客户端与PolarDB集群间,负责SQL请求的解析与转发,并支持连接池管理、SQL过滤及路由规则等功能。本文详细介绍了PolarDB Proxy的配置方法,包括连接池、负载均衡和SQL过滤设置,并探讨了监控调优、缓存及网络优化策略,以帮助提升数据库访问效率。
15 1
|
12天前
|
SQL 关系型数据库 数据库连接
探索研究Ruby 数据库访问
【8月更文挑战第31天】
24 1
|
13天前
|
SQL 存储 小程序
【教程】navicat配合HTTP通道远程连接SQLite数据库
本文介绍了如何通过 Navicat Premium 工具配合 n_tunnel_sqlite.php 和 HTTP 通道远程连接服务器上的 SQLite 数据库。SQLite 是一种自给自足的、无服务器的 SQL 数据库引擎,由于其端口未对外开放,直接使用 Navicat 进行远程连接不可行。文章详细记录了使用 HTTP 通道实现远程连接的过程,包括定位本地 `ntunnel_sqlite.php` 文件,将其上传至服务器,并通过 Navicat 配置 HTTP 通道连接 SQLite 数据库的具体步骤。
14 0
【教程】navicat配合HTTP通道远程连接SQLite数据库
|
1月前
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
36 3
C#winform中使用SQLite数据库
|
18天前
|
运维 安全 Cloud Native
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
|
21天前
|
Java 数据库连接 数据库
java系列之~如何给sqlite数据库添加表
这篇文章介绍了如何在Java中使用SQLite JDBC驱动来连接SQLite数据库,并提供了示例代码来演示如何创建一个新的数据库表。
|
22天前
|
SQL 存储 数据库
SQLite数据库
【8月更文挑战第21天】SQLite数据库
30 3