mysql到cassandra java空指针异常

ovfsdjhp  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(298)

我的密码是

  1. import java.sql.Connection;
  2. import java.sql.Date;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. import com.datastax.driver.core.BatchStatement;
  8. import com.datastax.driver.core.Cluster;
  9. import com.datastax.driver.core.LocalDate;
  10. import com.datastax.driver.core.Row;
  11. import com.datastax.driver.core.Session;
  12. import com.datastax.driver.core.PreparedStatement;
  13. public class DataPortCluster {
  14. private static Cluster cluster;
  15. private static Session session;
  16. public static Cluster connect(String node) {
  17. return Cluster.builder().addContactPoint(node).build();
  18. }
  19. public static void main(String[] args) throws Exception{
  20. Connection conn = null;
  21. Statement stm = null;
  22. try {
  23. Class.forName("com.mysql.jdbc.Driver");
  24. String host = "jdbc:mysql://localhost:3306/ksfedata";
  25. String uName = "root";
  26. String uPass= "root";
  27. conn= DriverManager.getConnection(host, uName, uPass);
  28. stm = conn.createStatement();
  29. String sql = "SELECT c.id, c.branch, c.firstName, c.lastName, c.dob, c.uniqueId, c.mobilePhone, c.isKSFEEmployee "
  30. + ",CONCAT_WS('',offaddress.line1,offaddress.line2, offaddress.pinCode) AS Official,"
  31. + "CONCAT_WS('',peraddress.line1,peraddress.line2, peraddress.pinCode) AS Permanent,"
  32. + "CONCAT_WS('',resaddress.line1,resaddress.line2, resaddress.pinCode) AS Residential,"
  33. + "CONCAT_WS('',tempaddress.line1,tempaddress.line2, tempaddress.pinCode) AS Temporary,"
  34. + "CONCAT_WS('',commaddress.line1,commaddress.line2, commaddress.pinCode) AS Communication"
  35. + " FROM customerdup c "
  36. + "LEFT JOIN customeraddressdup as offaddress ON (offaddress.customerId =c.id AND offaddress.customerBranch = c.branch AND offaddress.addresstype=0) "
  37. + "LEFT JOIN customeraddressdup as peraddress ON (peraddress.customerId =c.id AND peraddress.customerBranch = c.branch AND peraddress.addresstype=1) "
  38. + "LEFT JOIN customeraddressdup as resaddress ON (resaddress.customerId =c.id AND resaddress.customerBranch = c.branch AND resaddress.addresstype=2) "
  39. + "LEFT JOIN customeraddressdup as tempaddress ON (tempaddress.customerId =c.id AND tempaddress.customerBranch = c.branch AND tempaddress.addresstype=3) "
  40. + "LEFT JOIN customeraddressdup as commaddress ON (commaddress.customerId =c.id AND commaddress.customerBranch = c.branch AND commaddress.addresstype=4)";
  41. // String sql = "Select ID,FIRSTNAME,DOB,MOBILEPHONE,EMAIL From customerdup LIMIT 3";
  42. ResultSet rst;
  43. rst = stm.executeQuery(sql);
  44. String serverIp = "localhost";
  45. String keyspace = "events";
  46. cluster = Cluster.builder().addContactPoint(serverIp).build();
  47. session = cluster.connect(keyspace);
  48. PreparedStatement statement = session.prepare("insert into customer (branch, uniqueid, communication,customerid,dob,firstname,isksfeemp,lastname,mobile,official,permanent,residential,temporary) "
  49. + "values (?,?,?,?,?,?,?,?,?,?,?,?,?) ;");
  50. //BoundStatement boundStatement = new BoundStatement(statement);
  51. BatchStatement batchStatement = new BatchStatement();
  52. long startTime = System.nanoTime();
  53. while (rst.next()) {
  54. int id = rst.getInt("id");
  55. String branch = rst.getString("branch");
  56. String firstname = rst.getString("firstname");
  57. String lastname = rst.getString("lastname");
  58. Date datecheck = rst.getDate("dob");
  59. LocalDate dob = LocalDate.fromMillisSinceEpoch(datecheck.getTime());
  60. String uniqueId = rst.getString("uniqueId");
  61. String mobile = rst.getString("mobilePhone");
  62. int isKSFEEmployee = rst.getInt("isKSFEEmployee");
  63. String Official = rst.getString("Official");
  64. String Permanent = rst.getString("Permanent");
  65. String Residential = rst.getString("Residential");
  66. String Temporary = rst.getString("Temporary");
  67. String Communication = rst.getString("Communication");
  68. batchStatement.add(statement.bind(branch,uniqueId,Communication,id,dob,firstname,isKSFEEmployee,lastname,mobile,Official,Permanent,Residential,Temporary));
  69. //session.execute(boundStatement.bind(id,name,Dob,mobNo,email));
  70. }
  71. session.execute(batchStatement);
  72. long endTime = System.nanoTime();
  73. long totalTime = endTime - startTime;
  74. System.out.println(totalTime + "++++++++++++++555555555555555555555555555555555555555555555");
  75. String cqlStatement = "SELECT * FROM customer";
  76. for (Row row : session.execute(cqlStatement)) {
  77. System.out.println(row.toString());
  78. }
  79. }catch (Exception e) {
  80. System.out.println(e.getMessage());
  81. }
  82. finally {
  83. if (conn != null && stm != null) {
  84. try {
  85. conn.close();
  86. stm.close();
  87. } catch (SQLException e) {
  88. e.printStackTrace();
  89. }
  90. conn = null;
  91. }
  92. session.close();
  93. cluster.close();
  94. }
  95. }
  96. }

当我试着调试我的代码时,我遇到了一个错误

  1. Exception in thread "main" java.lang.NullPointerException
  2. at DataPortCluster.main(DataPortCluster.java:121)

在那条线上

  1. cluster = Cluster.builder().addContactPoint(serverIp).build();

不知道是什么问题。如果有人能帮忙的话,那将是非常值得赞赏的。在我看来,问题是发生在连接Cassandra。为什么会在上面的行中抛出错误。我给出的serverip是localhost。
提前谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题