Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.mysql.fabric.jdbc.FabricMySQLDriver;
- import java.sql.*;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.StringTokenizer;
- public class OrderDAOImpl implements OrderDAO {
- private static final String URL = "jdbc:mysql://localhost:3306/mydb";
- private static final String USERNAME = "root";
- private static final String PASSWORD = "root";
- private static final String INSERT_ORDER =
- "insert into Patients (amount,price,name) values(?,?,?);";
- private static final String DELETE_ALL = "delete from Orders";
- private static final String PRINT_ALL = "select * from Orders;";
- public OrderDAOImpl() {
- super();
- try {
- Driver driver = new FabricMySQLDriver();
- DriverManager.registerDriver(driver);
- } catch (SQLException e) {
- }
- }
- @Override
- public List<Order> getOrderList() {
- ArrayList<Order> orders = new ArrayList<>();
- try {
- Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
- try {
- PreparedStatement preparedStatement = connection.prepareStatement(PRINT_ALL);
- ResultSet resultSet = preparedStatement.executeQuery();
- while (resultSet.next()) {
- String amountList = resultSet.getString(2);
- String priceList = resultSet.getString(3);
- String nameList = resultSet.getString(4);
- List<Product> productList = getProductList(amountList, priceList, nameList);
- orders.add(new Order(productList));
- }
- return orders;
- } catch (SQLException e) {
- connection.close();
- }
- } catch (SQLException e) {
- }
- return orders;
- }
- private List<Product> getProductList(String amountList, String priceList, String nameList) {
- StringTokenizer aTok = new StringTokenizer(amountList, ",");
- StringTokenizer pTok = new StringTokenizer(priceList, ",");
- StringTokenizer nTok = new StringTokenizer(nameList, ",");
- List<Product> productList = new ArrayList<>();
- while (aTok.hasMoreTokens()) {
- int amount = Integer.parseInt(aTok.nextToken());
- int price = Integer.parseInt(pTok.nextToken());
- String name = nTok.nextToken();
- productList.add(new Product(amount, price, name));
- }
- return productList;
- }
- @Override
- public void setOrderList(List<Order> orderList) {
- try {
- Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
- try {
- PreparedStatement preparedStatement = connection.prepareStatement(DELETE_ALL);
- preparedStatement.executeUpdate();
- for(Order order: orderList) {
- List<String> productStrings = convertProductList(order.getProductList());
- preparedStatement = connection.prepareStatement(INSERT_ORDER);
- preparedStatement.setString(1,productStrings.get(0));
- preparedStatement.setString(2,productStrings.get(1));
- preparedStatement.setString(3,productStrings.get(2));
- preparedStatement.execute();
- }
- } catch (SQLException e) {
- connection.close();
- }
- } catch (SQLException e) {
- }
- }
- private List<String> convertProductList(List<Product> productList) {
- StringBuilder aBuild = new StringBuilder();
- StringBuilder pBuild = new StringBuilder();
- StringBuilder nBuild = new StringBuilder();
- for (Product product : productList) {
- aBuild.append(product.getAmount() + ",");
- pBuild.append(product.getPrice() + ",");
- nBuild.append(product.getName() + ",");
- }
- List<String> productStrings = new ArrayList<>();
- productStrings.add(aBuild.toString());
- productStrings.add(pBuild.toString());
- productStrings.add(nBuild.toString());
- return productStrings;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement