Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:java:java_adatbazis:sqlite:kezdes

< SQLite

SQLite

  • Szerző: Sallai András
  • Copyright © 2013, Sallai András
  • Szerkesztve: 2013, 2014, 2015, 2022, 2023
  • Licenc: CC BY-SA 4.0

Az SQLite

Egy 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

Maven elemek

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

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.

Makefile
SOURCES=Program01.java \
	Sqlite.java
 
all:$(SOURCES)
	javac -encoding utf8 $(SOURCES)
 
run:
	java -cp .:sqlite-jdbc-3.7.2.jar Program01
Sqlite.java
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.

Program01.java
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

oktatas/programozas/java/java_adatbazis/sqlite/kezdes.txt · Utolsó módosítás: 2024/01/14 19:13 szerkesztette: admin