用Java将创建数据库等代码实现可以执行到调用相应写入表方法
时间: 2024-02-26 15:57:01 浏览: 166
下面是一个使用 Java 和 JDBC 向 `f_real_data` 表中插入一条数据的示例代码:
```java
import java.sql.*;
public class Main {
public static void main(String[] args) {
String url = "jdbc:postgresql://your_host:your_port/your_database_name";
String user = "your_username";
String password = "your_password";
try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement()) {
// 创建 f_real_data 表
String createTableSql = "CREATE TABLE f_real_data (id bigint, customer_code VARCHAR(50), steal_no VARCHAR(50), read_val DECIMAL(20, 10), diff_val DECIMAL(20, 10), read_date TIMESTAMP DEFAULT now(), tag Integer, is_enabled INT NOT NULL DEFAULT 1, PRIMARY KEY (id))";
stmt.executeUpdate(createTableSql);
// 创建 f_real_data_id_seq 序列
String createSequenceSql = "CREATE SEQUENCE f_real_data_id_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 10";
stmt.executeUpdate(createSequenceSql);
// 插入数据
String insertSql = "INSERT INTO f_real_data (customer_code, steal_no, read_val, diff_val, read_date, tag, is_enabled) VALUES (?, ?, ?, ?, ?, ?, ?)";
try (PreparedStatement pstmt = conn.prepareStatement(insertSql)) {
pstmt.setString(1, "customer_001");
pstmt.setString(2, "steal_001");
pstmt.setBigDecimal(3, new BigDecimal("3.14"));
pstmt.setBigDecimal(4, new BigDecimal("0.01"));
pstmt.setTimestamp(5, Timestamp.valueOf("2022-01-01 00:00:00"));
pstmt.setInt(6, 1);
pstmt.setInt(7, 1);
pstmt.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
这段代码中,我们首先定义了连接数据库需要的 URL、用户名和密码。接着,我们使用 `DriverManager.getConnection()` 方法连接到数据库,并创建 `Statement` 对象。然后,我们执行创建 `f_real_data` 表和 `f_real_data_id_seq` 序列的 SQL 语句,使用 `executeUpdate()` 方法执行 DDL 语句。最后,我们使用 `PreparedStatement` 对象执行插入数据的 SQL 语句,并设置参数,最后使用 `executeUpdate()` 方法执行插入语句。在这个示例中,我们使用了 `setString()`、`setBigDecimal()`、`setTimestamp()` 等方法来设置参数,具体的方法会根据数据类型的不同而有所不同。
阅读全文