package com.util; import java.sql.Connection; import java.util.Random; import java.sql.*; import com.util.SQLConn; public class RandomStringGenerator { public RandomStringGenerator() throws SQLException{ // 构造函数中调用可能会抛出SQLException异常的方法 // 添加异常处理语句 try{ final String UPDATE_SQL = "INSERT INTO strings (value) VALUES (?)"; try { Connection conn = SQLConn.openDB(); Class.forName("com.sqlserver.jdbc.Driver"); // 生成随机字符串 Random rand = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 5; i++) { char c = (char) (rand.nextInt(26) + 'a'); sb.append(c); } String str = sb.toString(); // 保存到数据库 PreparedStatement pstmte = conn.prepareStatement(UPDATE_SQL); { pstmte.setInt(1, 1); pstmte.executeUpdate(); } System.out.println("随机字符串已保存到数据库中:" + str); pstmte.close(); conn.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } }catch(SQLException e){ // exception handling here throw e; } }优化代码
时间: 2024-01-31 19:04:55 浏览: 139
下面是对代码的一些优化:
1. 删除了不必要的 try-catch 语句,因为异常应该在最外层进行处理,不需要在方法内部处理。
2. 添加了 try-with-resources 语句用于自动管理资源的关闭。
3. 将生成随机字符串的长度设置为一个可调整的参数,使其更具有灵活性。
4. 修改了 PreparedStatement 中的参数设置,将 int 类型改为了 String 类型。
经过这些优化,代码变得更加简洁和易于维护:
```
package com.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Random;
public class RandomStringGenerator {
private static final String INSERT_SQL = "INSERT INTO strings (value) VALUES (?)";
private static final int STRING_LENGTH = 10;
public RandomStringGenerator() throws SQLException {
try (Connection conn = SQLConn.openDB();
PreparedStatement pstmt = conn.prepareStatement(INSERT_SQL)) {
// 生成随机字符串
Random rand = new Random();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < STRING_LENGTH; i++) {
char c = (char) (rand.nextInt(26) + 'a');
sb.append(c);
}
String str = sb.toString();
// 保存到数据库
pstmt.setString(1, str);
pstmt.executeUpdate();
System.out.println("随机字符串已保存到数据库中:" + str);
} catch (SQLException e) {
// exception handling here
throw e;
}
}
}
```
阅读全文