有多条同一个ID的医嘱怎么存储到数据库具体实现代码java
时间: 2024-03-25 22:42:07 浏览: 19
以下是一个示例Java代码,演示了如何将多条同一个ID的医嘱存储到数据库中:
首先,我们需要定义一个 `Order` 类,表示医嘱实体,包含医嘱ID、病人ID、医嘱内容、医嘱时间等属性:
```java
public class Order {
private int orderId;
private int patientId;
private String orderContent;
private Date orderTime;
// 省略了 getter 和 setter 方法
}
```
然后,我们需要编写一个 `OrderDao` 类,实现将医嘱存储到数据库的功能。在该类中,我们可以使用 JDBC 连接数据库,执行 SQL 语句来实现数据的插入、查询、修改和删除等操作。以下是一个示例代码:
```java
public class OrderDao {
// 数据库连接信息
private static final String DATABASE_URL = "jdbc:mysql://localhost:3306/mydb";
private static final String DATABASE_USERNAME = "root";
private static final String DATABASE_PASSWORD = "password";
// 将医嘱插入到数据库中
public void addOrder(Order order) throws SQLException {
// 获取数据库连接
Connection connection = DriverManager.getConnection(DATABASE_URL, DATABASE_USERNAME, DATABASE_PASSWORD);
// 执行插入语句
PreparedStatement statement = connection.prepareStatement("INSERT INTO orders (patient_id, order_content, order_time) VALUES (?, ?, ?)");
statement.setInt(1, order.getPatientId());
statement.setString(2, order.getOrderContent());
statement.setTimestamp(3, new Timestamp(order.getOrderTime().getTime()));
statement.executeUpdate();
// 关闭连接
statement.close();
connection.close();
}
// 查询某个病人的医嘱列表
public List<Order> getOrdersByPatientId(int patientId) throws SQLException {
// 获取数据库连接
Connection connection = DriverManager.getConnection(DATABASE_URL, DATABASE_USERNAME, DATABASE_PASSWORD);
// 执行查询语句
PreparedStatement statement = connection.prepareStatement("SELECT * FROM orders WHERE patient_id = ? ORDER BY order_time DESC");
statement.setInt(1, patientId);
ResultSet resultSet = statement.executeQuery();
// 将结果集转换为列表
List<Order> orders = new ArrayList<>();
while (resultSet.next()) {
Order order = new Order();
order.setOrderId(resultSet.getInt("order_id"));
order.setPatientId(resultSet.getInt("patient_id"));
order.setOrderContent(resultSet.getString("order_content"));
order.setOrderTime(resultSet.getTimestamp("order_time"));
orders.add(order);
}
// 关闭连接
resultSet.close();
statement.close();
connection.close();
return orders;
}
// 修改某条医嘱的内容
public void updateOrder(Order order) throws SQLException {
// 获取数据库连接
Connection connection = DriverManager.getConnection(DATABASE_URL, DATABASE_USERNAME, DATABASE_PASSWORD);
// 执行更新语句
PreparedStatement statement = connection.prepareStatement("UPDATE orders SET order_content = ? WHERE order_id = ?");
statement.setString(1, order.getOrderContent());
statement.setInt(2, order.getOrderId());
statement.executeUpdate();
// 关闭连接
statement.close();
connection.close();
}
// 删除某条医嘱
public void deleteOrder(int orderId) throws SQLException {
// 获取数据库连接
Connection connection = DriverManager.getConnection(DATABASE_URL, DATABASE_USERNAME, DATABASE_PASSWORD);
// 执行删除语句
PreparedStatement statement = connection.prepareStatement("DELETE FROM orders WHERE order_id = ?");
statement.setInt(1, orderId);
statement.executeUpdate();
// 关闭连接
statement.close();
connection.close();
}
}
```
在上面的代码中,我们使用 `PreparedStatement` 对象执行 SQL 语句,使用 `ResultSet` 对象获取查询结果集。在插入医嘱时,我们将病人ID、医嘱内容和医嘱时间插入到 `orders` 表中;在查询医嘱时,我们根据病人ID在 `orders` 表中查询对应的记录,并按照时间顺序进行排序;在修改和删除医嘱时,我们使用医嘱的ID作为查询条件进行对应的操作。