import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; public class OBADBManager { private static OBADBManager instance = null; private static PasswordManager pwdManager = new PasswordManager(); protected OBADBManager() { // Exists only to defeat instantiation. } // singleton pattern public static OBADBManager getInstance() { if (instance == null) { instance = new OBADBManager(); } return instance; } public void initialize() { try { Class.forName("org.sqlite.JDBC"); Connection conn = DriverManager .getConnection("jdbc:sqlite:test.db"); Statement stat = conn.createStatement(); DatabaseMetaData dbm = conn.getMetaData(); ResultSet rs1 = dbm.getTables(null, null, "image", null); if (!rs1.next()) { stat.executeUpdate("create table image (user_name VARCHAR(25) NOT NULL, image_id INTEGER, image_name VARCHAR(100), image_desc TEXT(200), login_mode INTEGER);"); } conn.setAutoCommit(true); conn.close(); rs1.close(); } catch (Exception e1) { e1.printStackTrace(); } } /** * Write the password of user into the SQLite database return error if * having any error * * @param username * @param password * @return if false, write down the error message in the errMsg variable */ public boolean storePasswd(String username, String password) { // TODO Auto-generated method stub PasswordManager.storeData(username, password); return true; } public void clearLoginTable() { PasswordManager.deleteTable(); } /** * Look at the SQlite database and get the saved password and username if * exist * * @return <username, password> if exist null if not */ public String[] getRememberPasswd() { try { String[] userInfos = new String[2]; PasswordManager.getData(); userInfos[0] = pwdManager.getUserName(); userInfos[1] = pwdManager.getPwd(); return userInfos; } catch (Exception e1) { e1.printStackTrace(); } return null; } public ArrayList<OBAEntry> getStoredOBAEntries(String username) { return ImageManager.getData(username); } public void storeOBAEntry(String username, OBAEntry newObaEntry) { ImageManager.storeData(username, newObaEntry.getImageID(), newObaEntry.getImageName(), newObaEntry.getImageDesc(), newObaEntry.getLoginMode()); } }