· 4 years ago · Jan 08, 2021, 01:10 PM
1package com.volkov.srp;
2
3import java.math.BigInteger;
4import java.sql.*;
5
6public class DBManager {
7 private final String createQuery = "CREATE TABLE IF NOT EXISTS USERS" +
8 "(USERNAME TEXT PRIMARY KEY NOT NULL, " +
9 "SALT TEXT NOT NULL, VERIFIER TEXT NOT NULL)";
10
11 private PreparedStatement insert;
12 private PreparedStatement select;
13
14 private Connection con;
15
16 public DBManager() throws SQLException {
17 this.con = DriverManager.getConnection("jdbc:sqlite:users.db");
18 Statement statement = con.createStatement();
19 statement.executeUpdate(createQuery);
20 insert = con.prepareStatement("INSERT INTO USERS(USERNAME, SALT, VERIFIER) VALUES (?, ?, ?)");
21 select = con.prepareStatement("SELECT SALT, VERIFIER FROM USERS WHERE USERNAME=?");
22 }
23
24 public void addUser(String username, BigInteger salt, BigInteger verifier) throws SQLException {
25 insert.setString(1, username);
26 insert.setString(2, salt.toString());
27 insert.setString(3, verifier.toString());
28 insert.executeUpdate();
29 }
30
31 public ResultSet getUser(String username) throws SQLException {
32 select.setString(1, username);
33 return select.executeQuery();
34 }
35
36 public void disconnect() throws SQLException {
37 con.close();
38 }
39}