Guest User

Untitled

a guest
Sep 21st, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. package nntp.dur.bounceme.net;
  2.  
  3. import java.sql.DriverManager;
  4. import java.sql.Statement;
  5. import java.util.Enumeration;
  6. import java.util.Properties;
  7. import java.util.logging.Level;
  8. import java.util.logging.Logger;
  9. import javax.mail.*;
  10. import static java.lang.System.out;
  11. import java.sql.*;
  12.  
  13. public class GnuNNTP {
  14.  
  15. private static final Logger logger = Logger.getLogger(GnuNNTP.class.getName());
  16. private static Level level = Level.INFO;
  17. private static Properties props = new Properties();
  18. private static java.sql.Connection con = null;
  19. private static Message[] messages = null;
  20.  
  21. public static void main(String[] args) throws Exception {
  22. props.load(GnuNNTP.class.getResourceAsStream("/nntp.properties"));
  23. nntp();
  24. mysql();
  25. con.close();
  26. }
  27.  
  28. private static void nntp() throws Exception {
  29. Session session = Session.getDefaultInstance(props);
  30. session.setDebug(true);
  31. Store store = session.getStore(new URLName(props.getProperty("host")));
  32. store.connect();
  33. Folder root = store.getDefaultFolder();
  34. Folder folder = root.getFolder(props.getProperty("group"));
  35. folder.open(Folder.READ_ONLY);
  36. logger.log(level, "Folder {0} has {1} messages", new Object[]{folder.getName(), folder.getMessageCount()});
  37. messages = folder.getMessages();
  38. for (Message m : messages) {
  39. String s = m.getSubject();
  40. Enumeration h = m.getAllHeaders();
  41. while (h.hasMoreElements()) {
  42. String o = h.nextElement().toString();
  43. }
  44. }
  45. folder.close(false);
  46. store.close();
  47. }
  48.  
  49. private static void mysql() throws Exception {
  50. String url = "jdbc:mysql://localhost:3306/java";
  51. con = DriverManager.getConnection(url, props.getProperty("jdbc.user"), props.getProperty("jdbc.password"));
  52. logger.log(level, "URL: {0}", url);
  53. logger.log(level, "Connection: {0}", con);
  54. try {
  55. down();
  56. logger.log(level, "dropped table");
  57. } catch (Exception exception) {
  58. logger.log(level, "no table to drop");
  59. }
  60. up();
  61. describe();
  62. fill();
  63. query();
  64. }
  65.  
  66. private static void down() throws Exception {
  67. Statement stmt = con.createStatement();
  68. stmt.executeUpdate("DROP TABLE messages");
  69. }
  70.  
  71. private static void up() throws Exception {
  72. String sql = "create table messages("
  73. + "id int, "
  74. + "sender text, "
  75. + "subject text,"
  76. + "content text)";
  77. PreparedStatement pstmt = con.prepareStatement(sql);
  78. pstmt.executeUpdate();
  79. }
  80.  
  81. private static void describe() throws Exception {
  82. Statement stmt = con.createStatement();
  83. ResultSet rs = stmt.executeQuery("DESCRIBE messages");
  84. ResultSetMetaData md = rs.getMetaData();
  85. int col = md.getColumnCount();
  86. for (int i = 1; i <= col; i++) {
  87. String col_name = md.getColumnName(i);
  88. logger.log(level, col_name);
  89. }
  90. }
  91.  
  92. private static void fill() throws Exception {
  93. String query = "insert into messages(id,sender,subject) values (?,?,?);";
  94. PreparedStatement pstm = con.prepareStatement(query);
  95. for (Message m : messages) {
  96. pstm.setInt(1, m.getMessageNumber());
  97. pstm.setString(2, m.getFrom()[0].toString());
  98. pstm.setString(3, m.getSubject());
  99. pstm.addBatch();
  100. }
  101. pstm.executeBatch();
  102. }
  103.  
  104. private static void query() throws Exception {
  105. Statement stmt = con.createStatement();
  106. ResultSet result = stmt.executeQuery("select * from messages");
  107. out.println(result.getFetchSize());
  108. while (result.next()) {
  109. int id = result.getInt("id");
  110. String sender = result.getString("sender");
  111. String subject = result.getString("subject");
  112. out.println(id + "\t\t" + subject);
  113. }
  114. out.println("queried db");
  115. }
  116. }
Add Comment
Please, Sign In to add comment