= sqlite =
 * https://www.sqlite.org/index.html
SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. SQLite is the most used database engine in the world.

[[Python/DjangoREST|DjangoREST]] also supports sqlite. 

There is also a [[https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc/3.28.0|JDBC driver]] for it ([[https://github.com/xerial/sqlite-jdbc|Github source code]]) and it's JPA compliant. 

A JDBC sample URL for a DB stored in sample.db file is
{{{
jdbc:sqlite:sample.db
}}}

{{{#!highlight sh
apt install sqlite3
sqlite3 test.db 
}}}

{{{#!highlight sql
-- SQL steps
CREATE TABLE IF NOT EXISTS PushNotificationsTable (push text);
insert into PushNotificationsTable values('aaa');
select * from PushNotificationsTable;
.help
.databases
.tables
.dbinfo
.output out.txt
.dump PushNotificationsTable
.quit
}}}

== Spring notes ==
pom.xml
{{{#!highlight xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <dependencies>
    <dependency>
      <groupId>com.zsoltfabok</groupId>
      <artifactId>sqlite-dialect</artifactId>
      <version>1.0</version>
    </dependency>
    <dependency>
      <groupId>org.xerial</groupId>
      <artifactId>sqlite-jdbc</artifactId>
      <version>3.45.1.0</version>
    </dependency>
  </dependencies>
</project>
}}}

application.properties
{{{
spring.datasource.url=jdbc:sqlite:/tmp/test.db
spring.datasource.driverClassName=org.sqlite.JDBC
spring.datasource.username=sa
spring.datasource.password=????????
spring.jpa.database-platform=org.hibernate.dialect.SQLiteDialect
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
}}}

application.yaml
{{{#!highlight yaml
spring:
  datasource:
    url: jdbc:sqlite:/tmp/test.db
    driverClassName: org.sqlite.JDBC
    username: sa
    password: ????????
  jpa:
    database-platform: org.hibernate.dialect.SQLiteDialect
    hibernate:
      ddl-auto: create-drop
    show-sql: true
}}}