在语音转换过程中将数据写入数据库
try (Connection conn = DriverManager.getConnection(dbUrl, dbUser, dbPassword)) {
// SQL 插入语句
String sql1 = "SELECT MAX(idexam) AS max_id FROM exam";
PreparedStatement pstmt1 = conn.prepareStatement(sql1);
ResultSet rs = pstmt1.executeQuery();
//int maxIdExam = rs.getInt("max_id");
int maxIdexam =1;
if (rs.next()) {
maxIdexam = rs.getInt("max_id");
// 处理 maxIdexam
} else {
// 结果集为空,处理方式
maxIdexam =1;
}
// 格式化日期和时间
Timestamp currentTimestamp = new Timestamp(System.currentTimeMillis());
String sql2 = "INSERT INTO message (idexam,text,voice,time,isUserMessage) VALUES (?,?,?,?,?)";
try (PreparedStatement pstmt2 = conn.prepareStatement(sql2)) {
// 设置 BLOB 数据
pstmt2.setInt(1,maxIdexam);
pstmt2.setString(2, aiResponse);
pstmt2.setBytes(3,audioBytes);
pstmt2.setTimestamp(4,currentTimestamp);
pstmt2.setInt(5,0);
// 执行插入操作
pstmt2.executeUpdate();
}
}
String text = webSocketService.transcribeAudio(yasiFilePath);
byte[] wavBytes = readWavFile(filePath);
Timestamp currentTimestamp = new Timestamp(System.currentTimeMillis());
try (Connection conn = DriverManager.getConnection(dbUrl, dbUser, dbPassword)) {
// SQL 插入语句
String sql1 = "SELECT MAX(idexam) AS max_id FROM exam";
PreparedStatement pstmt1 = conn.prepareStatement(sql1);
ResultSet rs = pstmt1.executeQuery();
//int maxIdexam = rs.getInt("max_id");
int maxIdexam;
if (rs.next()) {
maxIdexam = rs.getInt("max_id");
// 处理 maxIdexam
} else {
// 结果集为空,处理方式
maxIdexam =2;
}
// 格式化日期和时间
String sql2 = "INSERT INTO message (idexam,text,voice,time,isUserMessage) VALUES (?,?,?,?,?)";
try (PreparedStatement pstmt2 = conn.prepareStatement(sql2)) {
// 设置 BLOB 数据
pstmt2.setInt(1,maxIdexam);
pstmt2.setString(2, text);
pstmt2.setBytes(3,wavBytes);
pstmt2.setTimestamp(4,currentTimestamp);
pstmt2.setInt(5,1);
// 执行插入操作
pstmt2.executeUpdate();
}
}
catch (SQLException e) {
e.printStackTrace();
}