表org_base中orgId,parentId,orgName字段,有完整的组织机构数据若干条,现在需要将表中数据复制为另外一个组织机构,但orgName不变的java代码
时间: 2024-05-11 20:13:42 浏览: 151
假设需要将表中所有数据复制到另一个组织机构,可以使用如下的Java代码:
```java
// 假设原组织机构的orgId为1,新组织机构的orgId为2
int orgId = 2;
int parentId = 0; // 新组织机构的parentId为0,即根节点
String orgName = null; // orgName不变,不需要修改
PreparedStatement stmt = null;
ResultSet rs = null;
try {
// 查询原组织机构的数据
String sql = "SELECT orgId, parentId, orgName FROM org_base WHERE orgId = ?";
stmt = conn.prepareStatement(sql);
stmt.setInt(1, 1);
rs = stmt.executeQuery();
// 复制数据到新组织机构
while (rs.next()) {
orgId = rs.getInt("orgId");
parentId = rs.getInt("parentId");
orgName = rs.getString("orgName");
// 插入新数据
sql = "INSERT INTO org_base (orgId, parentId, orgName) VALUES (?, ?, ?)";
stmt = conn.prepareStatement(sql);
stmt.setInt(1, orgId);
stmt.setInt(2, parentId);
stmt.setString(3, orgName);
stmt.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭ResultSet、Statement等资源
}
```
上述代码中,使用了JDBC API来查询原组织机构的数据,并将数据复制到新组织机构中。其中,使用了PreparedStatement来执行SQL语句,可以避免SQL注入等问题。由于orgName不变,可以直接从ResultSet中获取值,不需要进行修改。在复制数据时,使用了INSERT INTO语句来插入新数据。需要注意的是,如果表中已存在相同的orgId,会导致插入失败,需要进行处理。
阅读全文