Twitter4Jで特定のツイートを取得し、MySQLへ格納したいのですが文字列のまま格納されてしまいます。
https://oshiete.goo.ne.jp/qa/3055587.html こちらのサイトを参考に、
String sql = "insert into twitter values ('"+ tweet.getUser().getScreenName() + "','" + tweet.getText() +"','" + tweet.getCreatedAt() +"')";
int num = stmt.executeUpdate(sql);
といった、'や",+で繋げることも試しましたがcannot find symbolとエラーが出ます。
どうすればよいでしょうか?
まだまだJavaを触れ始めたばかりで、間違った記述も多いと思います。よろしければここも間違っているなど、ご指摘ください。
今回はこちらのサイトを参考に作っています。
http://www.javadrive.jp/servlet/database/index8.html
http://www.mwsoft.jp/programming/java/twitter4j.html
【TweetInsert.java】
import java.io.;
import javax.servlet.;
import javax.servlet.http.;
import java.sql.;
import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
public class TweetInsert extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>TweetをMySQLへ格納</title>"); out.println("</head>"); out.println("<body>"); Connection conn = null; String url = "jdbc:mysql://localhost/test"; String user = "root"; String password = "root"; try { // 初期化 Twitter twitter = new TwitterFactory().getInstance(); Query query = new Query(); // 検索ワードをセット query.setQuery("#寿司" OR "#カレー"); // 検索実行 QueryResult result = twitter.search(query); // 検索結果の表示 for (Status tweet : result.getTweets()) { out.println(tweet.getUser().getScreenName()); out.println(tweet.getText()); out.println(tweet.getCreatedAt()); } Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); String sql = "insert into twitter values (?,?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "tweet.getUser().getScreenName()"); pstmt.setString(2, "tweet.getText()"); pstmt.setString(3, "tweet.getCreatedAt()"); pstmt.executeUpdate(); sql = "select * from test"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { String User = rs.getString("User"); String Text = rs.getString("Text"); String CreatedAt = rs.getString("CreatedAt"); out.println("<p>"); out.println("User:" + User + ", Text:" + Text + ", CreatedAt:" + CreatedAt); out.println("</p>"); } rs.close(); stmt.close(); } catch (ClassNotFoundException e) { out.println("ClassNotFoundException:" + e.getMessage()); } catch (SQLException e) { out.println("SQLException:" + e.getMessage()); } catch (Exception e) { out.println("Exception:" + e.getMessage()); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { out.println("SQLException:" + e.getMessage()); } } out.println("</body>"); out.println("</html>"); }
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。