上一篇
Java添加语句怎么写?,(严格控制在12字)
- 后端开发
- 2025-06-09
- 2843
Java中使用
PreparedStatement
执行SQL添加语句: ,1. 创建SQL模板:
String sql = "INSERT INTO 表名(列1,列2) VALUES(?,?)";
,2. 预编译语句并设置参数: ,
pstmt.setString(1, "值1");
,
pstmt.setInt(2, 值2);
,3. 执行更新:
int rows = pstmt.executeUpdate();
集合框架的添加操作
List 集合
List<String> fruitList = new ArrayList<>(); // 基础添加 fruitList.add("Apple"); // 末尾添加单个元素 fruitList.add(1, "Banana"); // 指定索引位置插入 // 批量添加 List<String> newFruits = Arrays.asList("Mango", "Orange"); fruitList.addAll(newFruits); // 合并集合
- 返回值:
add()
返回boolean
(成功为true
) - 注意:索引位置需在
[0, size()]
范围内
Set 集合
Set<Integer> numberSet = new HashSet<>(); numberSet.add(10); // 添加元素 numberSet.add(20); System.out.println(numberSet.add(10)); // 输出false (元素已存在)
- 特性:自动去重,添加重复元素返回
false
Map 集合
Map<String, Integer> countryCode = new HashMap<>(); countryCode.put("US", 1); // 添加键值对 countryCode.put("UK", 44); // 安全添加(当键不存在时) countryCode.putIfAbsent("JP", 81); // 键不存在才添加
数组的动态添加
由于数组长度固定,推荐转为ArrayList
操作:
String[] initialArray = {"A", "B"}; List<String> dynamicList = new ArrayList<>(Arrays.asList(initialArray)); dynamicList.add("C"); // 动态扩展 // 转回数组(可选) String[] newArray = dynamicList.toArray(new String[0]);
数据库添加操作(JDBC)
String sql = "INSERT INTO users (name, email) VALUES (?, ?)"; try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); PreparedStatement pstmt = conn.prepareStatement(sql)) { // 参数绑定 pstmt.setString(1, "John"); // 第一个?占位符 pstmt.setString(2, "john@example.com"); int rowsAffected = pstmt.executeUpdate(); // 执行添加 System.out.println("插入行数: " + rowsAffected); } catch (SQLException e) { e.printStackTrace(); }
- 关键点:
- 使用
PreparedStatement
防SQL注入 executeUpdate()
返回受影响行数- 资源自动关闭(try-with-resources)
- 使用
并发场景下的线程安全操作
// 线程安全列表 List<String> syncList = Collections.synchronizedList(new ArrayList<>()); syncList.add("thread-safe"); // ConcurrentHashMap高效并发 ConcurrentMap<String, Integer> concurrentMap = new ConcurrentHashMap<>(); concurrentMap.put("key", 100);
最佳实践与注意事项
-
集合选择原则:
- 快速随机访问 →
ArrayList
- 频繁增删 →
LinkedList
- 去重 →
HashSet
/TreeSet
- 键值存储 →
HashMap
/TreeMap
- 快速随机访问 →
-
性能优化:
// 初始化指定容量(避免扩容开销) List<String> optimizedList = new ArrayList<>(1000);
-
空值处理:
ArrayList
/HashMap
允许null
元素ConcurrentHashMap
禁止null
值
-
不可变集合(Java 9+):
List<String> unmodifiableList = List.of("A", "B", "C"); unmodifiableList.add("D"); // 抛出UnsupportedOperationException
常见错误规避
错误案例 | 修正方案 |
---|---|
list.add(5, "X") 但list.size()=3 |
确保索引≤当前长度 |
map.put(null, 100) 但使用TreeMap |
改用HashMap 或非null 键 |
循环中直接删除集合元素 | 使用Iterator.remove() |
通过上述示例和规范,可高效实现Java中的各类添加操作,重点在于:
- 集合选择匹配业务场景
- 并发环境使用线程安全类
- 数据库操作务必参数化防注入
- 不可变集合提升代码健壮性
权威参考:
Oracle官方Java文档 Collections Framework
《Effective Java》第4章 泛型与集合(Joshua Bloch著)
JDBC规范 JSR 221