Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ```public class Use_To_Import_From_CDP {
- static ArrayList<Card> cards = new ArrayList<Card>();
- static ArrayList<String> tempList = new ArrayList<String>();
- private static Map<String,String> passToSQL = new HashMap<String,String>();
- public Map<String, String> getSQLMap() {
- return passToSQL;
- }
- //Change this to "false" instead of "true" to disable the visible updates displaying in console
- static boolean showupdates = false;
- public static void main(String[] args) {
- long startTime = System.nanoTime();
- System.out.println("Program Starting and Working... Please do not close this until you see 'DONE'... This may take a while, please be patient.");
- System.out.println();
- System.out.println();
- System.out.println("Inserting/Updating cards to MasterCardRecord table... Inserting new cards to AddNewCards table... Updating Qty of duplicate cards in Inventory Update table...");
- exportFile();
- SQL();
- System.out.println("DONE");
- long endTime = System.nanoTime();
- System.out.println("Took "+(endTime - startTime)/1000000000 + " Seconds");
- }
- public static void exportFile() {
- // define the variables
- String inputFile = "resources/0000003-Export-04-28-22.csv";
- String outputFile = "resources/output.csv";
- String tags = "collectable"; // use collectable, comics, or CARDS
- boolean writeheader;
- String img2url = "";
- boolean overwrite = false;
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //Information to be exported to SQL
- String Vendor1 = "the10thinningva.com";
- String Published1 = "TRUE";
- String Option1Name1 = "Title";
- String Option1Value1 = "Default Title";
- String VariantGrams1 = "45";
- String VariantInventoryTracker1 = "shopify";
- String VariantInventoryQty1 = "1";
- String VariantInventoryPolicy1 = "deny";
- String VariantFufillmentService1 = "manual";
- String VariantRequiresShipping1 = "TRUE";
- String VariantTaxable1 = "TRUE";
- String GiftCard1 = "FALSE";
- String Status1 = "active";
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
- // read the csv file using filereader and bufferedreader using a loop and splitting each line into an array before splitting it at the delimiter
- try {
- FileReader fileReader = new FileReader(inputFile);
- BufferedReader bufferedReader = new BufferedReader(fileReader);
- String line;
- // get rid of first line
- line = bufferedReader.readLine();
- while ((line = bufferedReader.readLine()) != null) {
- //for (String str : row){
- tempList.add(line);
- //}
- // append the result of row to output file using bufferedwriter
- }
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- for (String line : tempList) {
- String[] row = line.split(",");
- Card card = new Card();
- //line just added -----
- card.setFrontImage(row[10]);
- //purchase price makes second entry wrong, this makes first right
- card.setStartPrice(row[26]);
- //---------------------------
- card.setBackImage(row[11]);
- if(row[60].equals(" # ")) {
- card.setTitle("N/A");
- }
- else {
- card.setTitle(row[60]);
- }
- String handle = card.getTitle().toLowerCase();
- handle = handle.replace(" ", "-");
- card.setHandle(handle);
- if(row[61].equals("") || row[61].equals(null)) {
- card.setDescription("N/A");
- }
- else {
- card.setDescription(row[61]);
- }
- card.tags = tags;
- cards.add(card);
- }
- // Start New Code Here and pass card data to database
- for (Card card : cards) {
- String information = card.outputSQLInformation(Vendor1,Published1, Option1Name1, Option1Value1,
- VariantGrams1, VariantInventoryTracker1, VariantInventoryQty1, VariantInventoryPolicy1,
- VariantFufillmentService1, VariantRequiresShipping1, VariantTaxable1, GiftCard1, Status1);
- String finalinfostring = information.split(",")[0] + "," + information.split(",")[1] + "," + information.split(",")[2] + "," + information.split(",")[3] + ","
- + information.split(",")[4] + "," + information.split(",")[5] + "," + information.split(",")[6] + "," + information.split(",")[7] + "," + information.split(",")[8] + ","
- + information.split(",")[9] + "," + information.split(",")[10] + "," + information.split(",")[11] + "," + information.split(",")[12] + "," + information.split(",")[13] + ","
- + information.split(",")[14] + "," + information.split(",")[15] + "," + information.split(",")[16] + "," + information.split(",")[17] + "," + information.split(",")[18] + ","
- + information.split(",")[19];
- passToSQL.put(card.Handle, finalinfostring);
- }
- }
- public static void SQL() {
- int handleqty = -1;
- String url = "jdbc:MYURL/MYDB";
- String username = "username";
- String password = "password";
- try{
- for(Entry<String, String> entry: passToSQL.entrySet()) {
- Connection conn1 = DriverManager.getConnection(url, username, password);
- //System.out.println(entry);
- String cardinfo = entry.getValue();
- String Handle = cardinfo.split(",")[0];
- String Title = cardinfo.split(",")[1];
- String Vendor = cardinfo.split(",")[2];
- String Tags = cardinfo.split(",")[3];
- String Published = cardinfo.split(",")[4];
- String Option1Name = cardinfo.split(",")[5];
- String Option1Value = cardinfo.split(",")[6];
- int VariantGrams = Integer.parseInt(cardinfo.split(",")[7]);
- String VariantInventoryTracker = cardinfo.split(",")[8];
- String VariantInventoryQty = cardinfo.split(",")[9];
- String VariantInventoryPolicy = cardinfo.split(",")[10];
- String VariantFufillmentService = cardinfo.split(",")[11];
- float VariantPrice = Float.parseFloat(cardinfo.split(",")[12]);
- String VariantRequiresShipping = cardinfo.split(",")[13];
- String VariantTaxable = cardinfo.split(",")[14];
- String ImgSrcfront = cardinfo.split(",")[15];
- String ImgSrcback = cardinfo.split(",")[16];
- String GiftCard = cardinfo.split(",")[17];
- String Status = cardinfo.split(",")[18];
- String Description = cardinfo.split(",")[19];
- String checkexists = "SELECT EXISTS(SELECT 1 FROM MasterCardRecord WHERE Handle = ? LIMIT 1)";
- PreparedStatement statement1 = conn1.prepareStatement(checkexists);
- statement1.setString(1, Handle);
- ResultSet exists = statement1.executeQuery();
- exists.next();
- //System.out.println(exists.getString(1));
- boolean handleexists = false;
- if(exists.getString(1).equals("1")) {
- handleexists = true;
- Connection conn2 = DriverManager.getConnection(url, username, password);
- String sql2 = "SELECT `Variant Inventory Qty` FROM MasterCardRecord WHERE Handle = ? LIMIT 1";
- PreparedStatement getqty = conn2.prepareStatement(sql2);
- getqty.setString(1, Handle);
- ResultSet handleqtyrs = getqty.executeQuery();
- handleqtyrs.next();
- handleqty = handleqtyrs.getInt(1);
- }
- if(exists.getString(1).equals("0")) {
- handleexists = false;
- }
- statement1.close();
- conn1.close();
- //NEW CODE --------------------------------------------------------------------------------
- if (handleexists == true) {
- Connection connInvUpdate= DriverManager.getConnection(url, username, password);
- String InvUpdate = "INSERT INTO InventoryUpdate (Handle, `Variant Inventory Qty`) VALUES (?,?) ON DUPLICATE KEY UPDATE `Variant Inventory Qty` = ?";
- PreparedStatement InvStatement = connInvUpdate.prepareStatement(InvUpdate);
- InvStatement.setString(1,Handle);
- InvStatement.setInt(2, handleqty + 1);
- InvStatement.setInt(3, handleqty + 1);
- int updatedInv = InvStatement.executeUpdate();
- connInvUpdate.close();
- InvStatement.close();
- }
- //-----------------------------------------------------------------------------------------
- if(handleexists == false) {
- // Handle doesnt exist within database
- Connection conn3 = DriverManager.getConnection(url, username, password);
- String sql = "INSERT INTO MasterCardRecord (Handle, Title, Vendor, Tags, Published, Option1Name, Option1Value, VariantGrams, `Variant Inventory Tracker`, `Variant Inventory Qty`, `Variant Inventory Policy`, `Variant Fufillment Service`, `Variant Price`, `Variant Requires Shipping`, `Variant Taxable`, `Img Src(front)`, `Img Src(back)`, `Gift Card`, Status, Description) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
- PreparedStatement statement2 = conn3.prepareStatement(sql);
- statement2.setString(1, Handle);
- statement2.setString(2, Title);
- statement2.setString(3, Vendor);
- statement2.setString(4, Tags);
- statement2.setString(5, Published);
- statement2.setString(6, Option1Name);
- statement2.setString(7, Option1Value);
- statement2.setInt(8, VariantGrams);
- statement2.setString(9, VariantInventoryTracker);
- statement2.setString(10, VariantInventoryQty);
- statement2.setString(11, VariantInventoryPolicy);
- statement2.setString(12, VariantFufillmentService);
- statement2.setFloat(13, VariantPrice);
- statement2.setString(14, VariantRequiresShipping);
- statement2.setString(15, VariantTaxable);
- statement2.setString(16, ImgSrcfront);
- statement2.setString(17, ImgSrcback);
- statement2.setString(18, GiftCard);
- statement2.setString(19, Status);
- statement2.setString(20, Description);
- int rows = statement2.executeUpdate();
- if (rows > 0 && showupdates == true) {
- System.out.println("Item Added: " + Handle);
- }
- statement2.close();
- conn3.close();
- // Put into AddNewCards as well, for export and adding ONLY those cards that dont exist yet.
- Connection AddNewCardConn = DriverManager.getConnection(url, username, password);
- String AddNewCardSQL = "INSERT INTO AddNewCards (Handle, Title, Vendor, Tags, Published, Option1Name, Option1Value, VariantGrams, `Variant Inventory Tracker`, `Variant Inventory Qty`, `Variant Inventory Policy`, `Variant Fufillment Service`, `Variant Price`, `Variant Requires Shipping`, `Variant Taxable`, `Img Src(front)`, `Img Src(back)`, `Gift Card`, Status, Description) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
- PreparedStatement AddNewCardStatement = AddNewCardConn.prepareStatement(AddNewCardSQL);
- AddNewCardStatement.setString(1, Handle);
- AddNewCardStatement.setString(2, Title);
- AddNewCardStatement.setString(3, Vendor);
- AddNewCardStatement.setString(4, Tags);
- AddNewCardStatement.setString(5, Published);
- AddNewCardStatement.setString(6, Option1Name);
- AddNewCardStatement.setString(7, Option1Value);
- AddNewCardStatement.setInt(8, VariantGrams);
- AddNewCardStatement.setString(9, VariantInventoryTracker);
- AddNewCardStatement.setString(10, VariantInventoryQty);
- AddNewCardStatement.setString(11, VariantInventoryPolicy);
- AddNewCardStatement.setString(12, VariantFufillmentService);
- AddNewCardStatement.setFloat(13, VariantPrice);
- AddNewCardStatement.setString(14, VariantRequiresShipping);
- AddNewCardStatement.setString(15, VariantTaxable);
- AddNewCardStatement.setString(16, ImgSrcfront);
- AddNewCardStatement.setString(17, ImgSrcback);
- AddNewCardStatement.setString(18, GiftCard);
- AddNewCardStatement.setString(19, Status);
- AddNewCardStatement.setString(20, Description);
- int AddCardRows = AddNewCardStatement.executeUpdate();
- AddNewCardStatement.close();
- AddNewCardConn.close();
- }
- if (handleexists == true) {
- // Handle DOES exist within database
- Connection conn3 = DriverManager.getConnection(url, username, password);
- String sql = "UPDATE MasterCardRecord SET `Variant Inventory Qty` = ? WHERE Handle = ?";
- PreparedStatement statement2 = conn3.prepareStatement(sql);
- statement2.setInt(1,handleqty + 1);
- statement2.setString(2, Handle);
- int rows = statement2.executeUpdate();
- if (rows > 0 && showupdates == true) {
- System.out.println("Inventory of: " + Handle + "has been updated from " + handleqty + " to %d".formatted(handleqty + 1));
- }
- statement2.close();
- conn3.close();
- }
- }
- }
- catch(Exception e){
- System.out.println("Database connection failed!\n" + e);
- }
- }
- }
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement