Files
WS-10-Database/src/main/java/dev/dao/OrderDao.java
T
2026-07-19 05:38:14 +03:30

130 lines
2.0 KiB
Java

package dev.dao;
import dev.database.DatabaseConnection;
import dev.model.Order;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class OrderDao {
public int save(Order order) {
String sql =
"INSERT INTO orders(user_id,total_price) VALUES(?,?)";
try(Connection con = DatabaseConnection.getConnection();
PreparedStatement ps =
con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)){
ps.setInt(1, order.getUserId());
ps.setDouble(2, order.getTotalPrice());
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
if(rs.next()){
return rs.getInt(1);
}
}catch(SQLException e){
e.printStackTrace();
}
return -1;
}
public List<Order> findByUserId(int userId){
List<Order> orders = new ArrayList<>();
String sql =
"SELECT * FROM orders WHERE user_id=?";
try(Connection con = DatabaseConnection.getConnection();
PreparedStatement ps =
con.prepareStatement(sql)){
ps.setInt(1,userId);
ResultSet rs = ps.executeQuery();
while(rs.next()){
Order order = new Order();
order.setId(rs.getInt("id"));
order.setUserId(rs.getInt("user_id"));
order.setTotalPrice(
rs.getDouble("total_price")
);
Timestamp timestamp =
rs.getTimestamp("created_at");
if(timestamp != null){
order.setCreatedAt(
timestamp.toLocalDateTime()
);
}
orders.add(order);
}
}catch(SQLException e){
e.printStackTrace();
}
return orders;
}
}