一个小数据库SQLite

Posted on 2020-06-12 15:15  xiaotian1021  阅读(113)  评论(0编辑  收藏  举报

参考

https://blog.csdn.net/csdnhsh/article/details/93376733
https://www.runoob.com/sqlite/sqlite-create-database.html

数据库安装

从网站https://www.sqlite.org/download.html 下载 sqlite-dll-win32-x86-3320200.zip、sqlite-tools-win32-x86-3320200.zip。
创建文件夹,将以上两个zip解压到该文件中,应该包含三个exe、一个dll等。
cmd命令行,cd到sqlite目录下,执行 sqlite3 命令。也可以直接双击执行 sqlite3.exe 。

数据库语法

SQLite不区分大小写。
所有的SQLite语句,以分号(;)结尾。
进入已有数据库

sqlite3 D:\temp\sqlite.db
SQLite version 3.32.2 2020-06-04 12:58:43
Enter ".help" for usage hints.
sqlite> .tables  --查看数据库中所有表名
sqlite> .indexes  --查看数据库中所有索引
sqlite> .database  --查看数据库信息
main: D:\temp\sqlite.db
sqlite> .quit  --退出

jdbc代码

SQLite是个小数据库。
java可以通过 sqlite-jdbc 操作该数据库。
以下代码,会创建 src\main\resources\sqlite.dat 文件,并将 person 表数据存储其中。(若文件创建失败,person 表将什么都查不出来)
问题是:绝对路径时,“jdbc:sqlite::resource:sqlite.db”无法使用!

private static String insertSql(String name, int salary) {
  StringBuilder sb = new StringBuilder();
  sb.append("insert into person ");
  sb.append("values('" + name + "', " + salary + ");");
  return sb.toString();
}
public static void main(String[] args) {
  try {
//	String url = "jdbc:sqlite://d:/temp/sqlite.db";//绝对路径
    String url = "jdbc:sqlite:src\\main\\resources\\sqlite.db";//直接放在项目目录下
    Class.forName("org.sqlite.JDBC");
    Connection conn = DriverManager.getConnection(url);
    Statement stat = conn.createStatement();
    
    stat.executeUpdate("drop table if exists person;");
    stat.executeUpdate("create table person(name varchar(20), salary int);");
    stat.executeUpdate(insertSql("ZhangSan", 8000));
    stat.executeUpdate(insertSql("LiSi", 7800));
    stat.executeUpdate(insertSql("WangWu", 5800));
    stat.executeUpdate(insertSql("ZhaoLiu", 9100));
    ResultSet rs = stat.executeQuery("select * from person;");
    System.out.println("创建表结构录入数据操作演示:");
    while(rs.next()) {
      System.out.print("name = "+rs.getString("name")+", ");
      System.out.println("salary = "+rs.getString("salary"));
    }
    rs.close();
    stat.close();
    conn.close();
  } catch (Exception e) {
    e.printStackTrace();
  }
}

还需要添加maven配置

<dependency>
  <groupId>org.xerial</groupId>
  <artifactId>sqlite-jdbc</artifactId>
  <version>3.28.0</version>
</dependency>

Copyright © 2024 xiaotian1021
Powered by .NET 8.0 on Kubernetes