[[oktatas:programozás:java:java adatbázis:sqlite|< SQLite]]
====== SQLite ======
* **Szerző:** Sallai András
* Copyright (c) 2013, Sallai András
* Szerkesztve: 2013, 2014, 2015, 2022, 2023
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Az SQLite =====
Egy [[oktatas:szótáracid|ACID]]-kompatibilis relációs adatbázis-kezelő rendszer.
Az SQLite motor a programba beépül, nem külön folyamat
éri el az adatbázist.
Egy SQLite adatbázis egyetlen fájlban tárolódik, amelynek szokásos kiterjesztése:
* .sqlite
* .db
===== Szükséges eszközök beszerzése =====
A meghajtó elérhetősége:
* https://github.com/xerial/sqlite-jdbc (2020)
* https://repo1.maven.org/maven2/org/xerial/sqlite-jdbc/ (2020)
* https://github.com/xerial/sqlite-jdbc/releases (2021)
===== Maven elemek =====
org.xerial
sqlite-jdbc
3.34.0
===== Példakód =====
Ebben a példában Makefile-t használunk a fordításra. Ehhez szükség van egy
make nevű parancsra, a fordításhoz és a futtatáshoz. Ha Visual Studio Code-t
használunk, nincs szükség a Makefile használatára.
SOURCES=Program01.java \
Sqlite.java
all:$(SOURCES)
javac -encoding utf8 $(SOURCES)
run:
java -cp .:sqlite-jdbc-3.7.2.jar Program01
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
class Sqlite {
public Connection open() {
Connection conn = null;
try {
conn = tryOpen();
}catch(SQLException ex) {
System.err.println("Hiba a megnyitás során!");
}catch(ClassNotFoundException ex) {
System.err.println("Hiba a meghajtó betöltése során!");
}
return conn;
}
public Connection tryOpen() throws SQLException, ClassNotFoundException {
Class.forName("org.sqlite.JDBC");
return DriverManager.getConnection("jdbc:sqlite:zoldzrt.sqlite");
}
public void update(Connection conn, String sql) {
try {
tryUpdate(conn, sql);
}catch(SQLException ex) {
System.err.println("Hiba az sql végrehajtása során!");
}
}
public void tryUpdate(Connection conn, String sql) throws SQLException {
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
}
public ResultSet query(Connection conn, String sql) {
ResultSet rs = null;
try {
rs = tryQuery(conn, sql);
}catch(SQLException ex) {
System.err.println("Hiba a lekérdezés során!");
}
return rs;
}
public ResultSet tryQuery(Connection conn, String sql) throws SQLException {
ResultSet rs = null;
Statement stmt = conn.createStatement();
stmt.setQueryTimeout(30);
rs = stmt.executeQuery(sql);
return rs;
}
public void close(Connection conn) {
try {
tryClose(conn);
}catch(SQLException ex) {
System.err.println("Hiba a bezárás során!");
}
}
public void tryClose(Connection conn) throws SQLException {
conn.close();
}
}
Vegyük a kódból a kapcsolat stringet:
DriverManager.getConnection("jdbc:sqlite:zoldzrt.sqlite");
A string vége, az **zoldzrt.sqlite** a fájl neve.
import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.SQLException;
class Program01 {
public static void main(String[] args) {
Sqlite sqlite = new Sqlite();
Connection conn = sqlite.open();
sqlite.update(conn, "insert into dol2 (nev) values('Peres Iván')");
String sql = "select nev from dol2";
ResultSet rs = sqlite.query(conn, sql);
try {
while(rs.next()) {
System.out.println(rs.getString("nev"));
}
}catch(SQLException ex) {
System.err.println("Hiba az eredményhalmaz feldolgozása során!");
}
sqlite.close(conn);
}
}
===== Fordítás =====
Fordítás:
javac Program01.java
Futtatás windows alatt:
java -classpath ".;sqlite-jdbc-(VERSION).jar" Program01
Futtatás macOS és Linux alatt:
java -classpath ".:sqlite-jdbc-(VERSION).jar" Program01
===== Linkek =====
* https://www.sqlitetutorial.net/sqlite-java/ (2020)
* SQLite programok
* http://sqlitebrowser.org/
* http://sqlitestudio.pl/
* http://sqlite.org/
* SQL nyelv:
* http://sqlite.org/lang.html