package com.util; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Random; import com.util.SQLConn; 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; } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { try { RandomStringGenerator generator = new RandomStringGenerator(); } catch (SQLException e) { // exception handling here e.printStackTrace(); } } }优化代码
时间: 2024-02-15 17:28:35 浏览: 100
以下是对代码的优化建议:
1. 使用 try-with-resources 语句,可以自动关闭连接和 PreparedStatement,避免资源泄漏。
2. 将 INSERT_SQL 和 STRING_LENGTH 定义为常量,可以提高代码的可读性。
3. 将 SQLConn.openDB() 方法改为静态方法,可以在不创建对象的情况下直接调用。
4. 在异常处理中,可以将异常信息记录在日志中,方便后续排查问题。
下面是优化后的代码:
```java
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() {
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) {
// 记录异常信息
System.err.println("保存随机字符串到数据库时出现异常:" + e.getMessage());
} catch (ClassNotFoundException e) {
// 记录异常信息
System.err.println("无法找到数据库驱动程序:" + e.getMessage());
}
}
public static void main(String[] args) {
new RandomStringGenerator();
}
}
```
阅读全文