Guest User

Untitled

a guest
Aug 25th, 2019
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.62 KB | None | 0 0
  1.  
  2. import java.io.File;
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.util.LinkedList;
  10.  
  11. public class DataBase {
  12.     private static final String EXDB_ADRESS = "jdbc:sqlite:db.db";
  13.  
  14.     private int mNextGid;
  15.     private int mNextTid;
  16.  
  17.     public DataBase() {
  18.         super();
  19.  
  20.         System.out.println("in");
  21.  
  22.         initTables();
  23.         initNextIdNumber();
  24.  
  25.     }
  26.  
  27.     public void insertGallery(LinkedList<Gallery> records) throws SQLException {
  28.         String sql = "INSERT INTO gallerys(name, category, gid) VALUES(?, ?, ?);";
  29.         String sql2 = "INSERT INTO tags(tagName, tid) VALUES(?, ?);";
  30.         String sql3 = "INSERT INTO relation(gid, tid) VALUES(?, ?);";
  31.  
  32.         Connection conn = getConnection();
  33.         PreparedStatement stmt = conn.prepareStatement(sql);
  34.         PreparedStatement stmt2 = conn.prepareStatement(sql2);
  35.         PreparedStatement stmt3 = conn.prepareStatement(sql3);
  36.  
  37.         while (!records.isEmpty()) {
  38.  
  39.             Gallery record = records.poll();
  40.             stmt.setString(1, record.getTitle());
  41.             stmt.setString(2, record.getCategory());
  42.             stmt.setInt(3, mNextGid);
  43.             stmt.execute();
  44.  
  45.             LinkedList<String> tags = record.getTags();
  46.  
  47.             String tag = null;
  48.             while ((tag = tags.poll()) != null) {
  49.                 // System.out.println("Tags: " + tag.toString());
  50.                 String sql4 = "SELECT tid FROM tags WHERE tagName='" + tag + "'";
  51.                 ResultSet rs = getResultSet(sql4);
  52.                 int tid;
  53.                 if (rs.next())
  54.                     tid = rs.getInt(1);
  55.                 else
  56.                     tid = mNextGid++;
  57.  
  58.                 stmt2.setString(1, tag);
  59.                 stmt2.setInt(2, tid);
  60.                 stmt2.execute();
  61.  
  62.                 stmt3.setInt(1, mNextGid);
  63.                 stmt3.setInt(2, tid++);
  64.                 stmt3.execute();
  65.             }
  66.  
  67.             mNextGid++;
  68.         }
  69.  
  70.     }
  71.  
  72.     private void initNextIdNumber() {
  73.         // TODO Auto-generated method stub
  74.  
  75.         try {
  76.             String sql = "SELECT MAX(gid) FROM gallerys;";
  77.             ResultSet rs = getResultSet(sql);
  78.             mNextGid = rs.getInt(1);
  79.         } catch (SQLException e) {
  80.             // TODO Auto-generated catch block
  81.             mNextGid = 0;
  82.         }
  83.         try {
  84.             String sql = "SELECT MAX(tid) FROM gallerys;";
  85.             ResultSet rs = getResultSet(sql);
  86.             mNextTid = rs.getInt(1);
  87.         } catch (SQLException e) {
  88.             // TODO Auto-generated catch block
  89.             mNextTid = 0;
  90.         }
  91.  
  92.         System.out.println("mNextGid: " + mNextGid);
  93.         System.out.println("mNextTid: " + mNextTid);
  94.  
  95.     }
  96.  
  97.     private ResultSet getResultSet(String sql) throws SQLException {
  98.         // System.out.println("Getting Results");
  99.         Connection conn = getConnection();
  100.  
  101.         ResultSet rs = conn.createStatement().executeQuery(sql);
  102.         return rs;
  103.  
  104.     }
  105.  
  106.     private Connection getConnection() {
  107.         try {
  108.             return DriverManager.getConnection(EXDB_ADRESS);
  109.         } catch (SQLException e) {
  110.             System.out.println("DataBase connection fail!!");
  111.             return null;
  112.         }
  113.     }
  114.  
  115.     private void initTables() {
  116.         creatGalleryTable();
  117.         creatTagsTable();
  118.         creatRelationsTable();
  119.     }
  120.  
  121.     private void creatGalleryTable() {
  122.  
  123.         String sql = " CREATE TABLE IF NOT EXISTS gallerys(name TEXT,category TEXT,gid INT);";
  124.         createTable("gallerys", sql);
  125.     }
  126.  
  127.     private void creatRelationsTable() {
  128.  
  129.         String sql = " CREATE TABLE IF NOT EXISTS relation(gid INT,tid INT);";
  130.         createTable("nodes", sql);
  131.     }
  132.  
  133.     private void creatTagsTable() {
  134.         String sql = " CREATE TABLE IF NOT EXISTS tags(tagName TEXT, tid INT);";
  135.         createTable("nodes", sql);
  136.  
  137.     }
  138.  
  139.     private void createTable(String name, String sql) {
  140.         try {
  141.  
  142.             Connection conn = getConnection();
  143.             Statement stmt = conn.createStatement();
  144.             stmt.execute(sql);
  145.  
  146.         } catch (SQLException e) {
  147.             // TODO Auto-generated catch block
  148.             e.printStackTrace();
  149.         }
  150.  
  151.     }
  152.  
  153. }
Advertisement
Add Comment
Please, Sign In to add comment