实现了导出mysql中存储的聊天记录,根据群聊id进行存储
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map;
@ApiOperation(value = "上传聊天记录",tags = "文件") @PostMapping("/uploadChat") public Result<?> uploadChat(@ApiParam("群聊id") @RequestParam String groupId) throws InterruptedException, TimeoutException, ContractException { System.out.println("群聊id是:" + groupId); String chat = null; { Statement st; ResultSet rs; try { Class.forName("com.mysql.cj.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/cart?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false"; String username = "root"; String password = "123456";
Connection c = DriverManager.getConnection(url, username, password);
st = c.createStatement();
rs = st.executeQuery("select * from group_message where group_id = '" + groupId + "'"); System.out.println(rs); ResultSetMetaData md = rs.getMetaData(); int columnCount = md.getColumnCount();
List list = new ArrayList<>(); while (rs.next()) { Map rowData = new HashMap(); for (int i = 1; i <= columnCount; i++) { rowData.put(md.getColumnName(i), rs.getObject(i)); } list.add(rowData); }
try { chat = Utils.exportTxtPaper(list); } catch (Exception e) { e.printStackTrace(); }
c.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException throwables) { throwables.printStackTrace(); } }
return Result.success(chat + ".txt"); }
public static String exportTxtPaper(List<Map> list) throws Exception { int baseNum = 0; Writer out; String chat = UUID.randomUUID().toString(); File outFile = new File("D:\\code\\timeBlank\\my-fabric-application-java\\src\\main\\resources\\chat\\" + chat + ".txt"); if (!outFile.exists()) { outFile.getParentFile().mkdirs(); } outFile.setWritable(true, false); out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8")); for (int i = 0; i < list.size(); i++) { out.write(list.get(i).get("id") + "|" + list.get(i).get("sender_id") + "|" + list.get(i).get("group_id")+ "|" + list.get(i).get("message")+ "|" + list.get(i).get("type")+ "|" + list.get(i).get("send_time")); out.write("\r\n"); } out.flush(); out.close(); return chat; }
|