kostaszabos Δημοσ. 25 Φεβρουαρίου 2017 Δημοσ. 25 Φεβρουαρίου 2017 Συνδέομαι στη βάση μου αλλά παίρνω αυτή την προειδοποίηση Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. και μετά μου πετάει ένα com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException το οποίο δέν ξέρω κάν απο πού μου έρχεται για να του βάλω ένα try-catch Κλείνει η σύνδεση πρίν φύγει το query? Πρέπει να χρησιμοποιήσω και DBCP Apache?
flienky Δημοσ. 25 Φεβρουαρίου 2017 Δημοσ. 25 Φεβρουαρίου 2017 Στο τελος του Url βαλε ενα &useSSL=false ακομα το url θα πρεπει να αρχιζει με jdbc:mysql:// localhost ειναι ο σερβερ?
kostaszabos Δημοσ. 25 Φεβρουαρίου 2017 Μέλος Δημοσ. 25 Φεβρουαρίου 2017 το finally στo τέλος των try-catch μου έφταιγε.. ΟΚ θα τα κάνω αυτά που λες flienky αλλά πόσο ασφαλή είναι? μήν το στείλω και γίνω ρεζίλι.. localhost είναι ο server.. κανονικά πρέπει να έχω pool? Ενταξει το έφτιαξα..
flienky Δημοσ. 25 Φεβρουαρίου 2017 Δημοσ. 25 Φεβρουαρίου 2017 Εξαρτάται απο τον τροπο που ειναι στημενη. Τι finally ειχες, πες μας μπας και βοηθηθει και κανενας αλλος
defacer Δημοσ. 25 Φεβρουαρίου 2017 Δημοσ. 25 Φεβρουαρίου 2017 Δεν έχεις βαρεθεί να ποστάρεις πράγματα που οριακά βγάζουν (ή πολλές φορές δε βγάζουν) νόημα και μετά με random αλλαγές να τα προσπερνάς χωρίς να έχεις μάθει ούτε εσύ ούτε κανένας άλλος απολύτως τίποτα; Θα βαρεθείς νομοτελειακά κάποια στιγμή όταν διαπιστώσεις ότι δε γίνεσαι elite ninja rockstar, αλλά εμείς τι φταίμε;
kostaszabos Δημοσ. 25 Φεβρουαρίου 2017 Μέλος Δημοσ. 25 Φεβρουαρίου 2017 Το έφτιαξα flienky αυτό.. αλλού έχω τώρα πρόβλημα.. δεν έχω καταλάβει στο preparedStatement που βάζω το sql πώς πρέπει να το γράψω.. Πές ότι έχω μιά βάση db με ένα πίνακα record που έχει τη στήλη με το κλειδί recordID και τη στήλη URL όπου μαζεύω κάτι links.. To query που του βάζω είναι sql = "INSERT INTO record(URL)" + " VALUES" +"(?);"; αλλά είναι λάθος γιατί εγώ θέλω να μαζεύει όλα τα url που του λέω να μαζεύει.. Σε ένα παραδειγμα που βρήκα το έχει sql = "INSERT INTO `db`.`Record` " + "(`URL`) VALUES " + "(?);"; αλλά η έκδοση της mySQL του είναι παλιά και δέν το παίρνει έτσι... Βασικά σε ένα cvs αρχειο θέλω να μαζεύονται τα αποτελέσματα
flienky Δημοσ. 25 Φεβρουαρίου 2017 Δημοσ. 25 Φεβρουαρίου 2017 Μαλλον θα χρειαστει να βαλεις ενα for loop που θα μετραει απο το 1 μεχρι το 100 πριν κανεις execute την query. ..Αρχικα σβησε τα + που δεν εχουν ρολο υπαρξης.. Δεν ειμαι σιγουρος αν ειναι σωστη η query για την java αλλλά νμζ πως ειναι. sql = "INSERT INTO `database_name_here`.`table_name_here` (`column_name_here`) VALUES (?)"
kostaszabos Δημοσ. 25 Φεβρουαρίου 2017 Μέλος Δημοσ. 25 Φεβρουαρίου 2017 (επεξεργασμένο) Λοιπόν ανεβάζω όλο τον κώδικά μου εδώ γιατί δέν βγάζω άκρη με τα queries.. Κάτι κάνω λάθος στη σύνταξη.. Εχουμε ένα web crawler που μαζεύει όλες τις σελίδες με δουλειές απο το kariera.gr και τσιμπάει όλα τα Email για να κάνεις αίτηση εργασίας.. package com.webcrawler; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class MyDB { public Connection conn = null; public MyDB() { String username = "root"; String password = "root"; String url = "jdbc:mysql://localhost:3306/mydb" + "?verifyServerCertificate=false" + "&useSSL=false" + "&requireSSL=false"; try { Class.forName("com.mysql.jdbc.Driver"); // set up connection with the database conn = DriverManager.getConnection(url, username, password); if(conn!=null){ System.out.println("Connected to the database"); } } catch (SQLException e) { System.out.println("An error occured. Please check your username/password"); e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public ResultSet querySingle(String sql) throws SQLException { Statement st = conn.createStatement(); return st.executeQuery(sql); } public boolean queryMultiple(String sql) throws SQLException { Statement st = conn.createStatement(); return st.execute(sql); } } package webcrawler; import java.io.IOException; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class WebCrawler { public static MyDB mydb= new MyDB(); public static void crawl(String url) throws IOException, SQLException{ String sql = "SELECT * FROM record(URL) where URL='" + url + "'"; // WRONG!!!! ResultSet rs = mydb.querySingle(sql); if(rs.next()){} else{ sql = "INSERT INTO record(URL) VALUES (?);"; // WRONG!!!!! PreparedStatement pt = mydb.conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pt.setString(1, url); pt.execute(); Document doc = Jsoup.connect("http://www.example.com/koukouroukou").get(); if(doc.text().contains("@")){ System.out.println(url); } Elements links = doc.select("a[hef]"); for(Element link : links){ if(link.attr("hef").contains("@")){ crawl(link.attr("abs:href")); } } } } public static void main(String[] args) throws IOException, SQLException { mydb.queryMultiple("TRUNCATE Record;"); crawl("http://www.kariera.gr/intl/jobseeker/jobs"); } } Λοιπόν ξεκινάω να κάνω μιά παραλλαγή που να αποθηκεύονται τα links σε ένα αρχείο μέχρι να βρείτε τί κάνω λάθος στα queries... Επεξ/σία 25 Φεβρουαρίου 2017 από kostaszabos
kaliakman Δημοσ. 25 Φεβρουαρίου 2017 Δημοσ. 25 Φεβρουαρίου 2017 Να φανταστώ δεν διάβασες τα Terms & Conditions του καριέρα ώστε να ξέρεις οτί είναι παράνομο αυτό που κάνεις;
kostaszabos Δημοσ. 25 Φεβρουαρίου 2017 Μέλος Δημοσ. 25 Φεβρουαρίου 2017 τυχαία έβαλα ένα λινκ που μου ήρθε στο μυαλό.. fixed τα sql queries επειδή περνάνε ως στρινγκάκια πέρνουν διπλά διαζευτικά ( " " ).. ΟΚ μέχρι εδώ.. Τα μονά διαζευτικά (' ') στα ονόματα βάσης/πίνακα/στήλης γιατί μπαίνουν???
Predatorkill Δημοσ. 25 Φεβρουαρίου 2017 Δημοσ. 25 Φεβρουαρίου 2017 τυχαία έβαλα ένα λινκ που μου ήρθε στο μυαλό.. fixed τα sql queries επειδή περνάνε ως στρινγκάκια πέρνουν διπλά διαζευτικά ( " " ).. ΟΚ μέχρι εδώ.. Τα μονά διαζευτικά (' ') στα ονόματα βάσης/πίνακα/στήλης γιατί μπαίνουν??? Μπαινουν γιατι μολις τελειωσουν τα στριγκακια αρχιζουν οι κυλοτες 2
tsofras Δημοσ. 25 Φεβρουαρίου 2017 Δημοσ. 25 Φεβρουαρίου 2017 Μπαινουν γιατι μολις τελειωσουν τα στριγκακια αρχιζουν οι κυλοτες Με πεθανες ρε φίλε μην τα λες απότομα βάλε κάνα quote xaxaxaxaxaxa 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα