Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

 Συνδέομαι στη βάση μου αλλά παίρνω αυτή την προειδοποίηση

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?

Δημοσ.

το finally στo τέλος των try-catch μου έφταιγε.. 

 

ΟΚ θα τα κάνω αυτά που λες flienky αλλά πόσο ασφαλή είναι? μήν το στείλω και γίνω ρεζίλι.. localhost είναι ο server.. κανονικά πρέπει να έχω pool?

Ενταξει το έφτιαξα..

Δημοσ.

Δεν έχεις βαρεθεί να ποστάρεις πράγματα που οριακά βγάζουν (ή πολλές φορές δε βγάζουν) νόημα και μετά με random αλλαγές να τα προσπερνάς χωρίς να έχεις μάθει ούτε εσύ ούτε κανένας άλλος απολύτως τίποτα;

 

Θα βαρεθείς νομοτελειακά κάποια στιγμή όταν διαπιστώσεις ότι δε γίνεσαι elite ninja rockstar, αλλά εμείς τι φταίμε;

Δημοσ.

Το έφτιαξα 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 αρχειο θέλω να μαζεύονται τα αποτελέσματα

Δημοσ.

Μαλλον θα χρειαστει να βαλεις ενα for loop που θα μετραει απο το 1 μεχρι το 100 πριν κανεις execute την query. 

 

..Αρχικα σβησε τα + που δεν εχουν ρολο υπαρξης.. 

 

Δεν ειμαι σιγουρος αν ειναι σωστη η query για την java αλλλά νμζ πως ειναι.

 

sql = "INSERT INTO `database_name_here`.`table_name_here` (`column_name_here`) VALUES (?)"

Δημοσ. (επεξεργασμένο)

Λοιπόν ανεβάζω όλο τον κώδικά μου εδώ γιατί δέν βγάζω άκρη με τα 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... 

Επεξ/σία από kostaszabos
Δημοσ.

τυχαία έβαλα ένα λινκ που μου ήρθε στο μυαλό.. fixed

 

τα sql queries επειδή περνάνε ως στρινγκάκια πέρνουν διπλά διαζευτικά ( " " ).. ΟΚ μέχρι εδώ.. Τα μονά διαζευτικά (' ') στα ονόματα βάσης/πίνακα/στήλης γιατί μπαίνουν???

Δημοσ.

τυχαία έβαλα ένα λινκ που μου ήρθε στο μυαλό.. fixed

 

τα sql queries επειδή περνάνε ως στρινγκάκια πέρνουν διπλά διαζευτικά ( " " ).. ΟΚ μέχρι εδώ.. Τα μονά διαζευτικά (' ') στα ονόματα βάσης/πίνακα/στήλης γιατί μπαίνουν???

Μπαινουν γιατι μολις τελειωσουν τα στριγκακια αρχιζουν οι κυλοτες

  • Like 2
Δημοσ.

Μπαινουν γιατι μολις τελειωσουν τα στριγκακια αρχιζουν οι κυλοτες

Με πεθανες ρε φίλε μην τα λες απότομα βάλε κάνα quote xaxaxaxaxaxa

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...