Bases de datos SQLite, como funcionan

Buenos días, tengo una base de datos de prueba hecha con SQLite y al ejecutar el programa hago lo siguiente:

Connection conn = null;
ResultSet rs = null;
PreparedStatement pst = null;

String fileSeperator = System.getProperty("file.separator");
String pathDefault = System.getProperty("user.dir");
String pathToFile = (pathDefault + fileSeperator + "datos" + fileSeperator + "Prueba.db");

Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:" + pathToFile);

conn = JavaConnect.ConnecrDb();
String sql = "select * from ddd';
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();

O sea me conecto a mi base de datos y ejecuto una consulta para que me devuelva unos datos.

Mi pregunta es, tengo que cerrar después la base de datos, conexión, etc... o la abro al inicio y la cierro al finalizar o salir de mi programa.

Como hago para que cuando un usuario esté en un registro se quede este bloqueado y otro usuario no pueda editarlo (como se controla eso).

Como me voy moviendo por los registros de las tablas (primero, anterior, siguiente, último).

Si al entrar a otro formulario tengo que abrir otra tabla, tengo que cerrar el "ResultSet" o "Statement" para luego abrirlo con mi nueva tabla?, es la primera vez que trabajo con java y bases de datos.

A ver si alguien me explica un poco más detalladamente como se hace todo esto y algunas otras cosillas que se me pasen.

Un saludo.