Advertisement
Guest User

Untitled

a guest
Jan 13th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.66 KB | None | 0 0
  1. package Clases;
  2. import java.sql.CallableStatement;
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.sql.Types;
  10. import java.util.ArrayList;
  11. import java.util.HashMap;
  12. import java.util.List;
  13.  
  14. public class AccesMySQL {
  15. private Connection cn;
  16. private Statement st;
  17. private PreparedStatement psProduct;
  18. private PreparedStatement psInsertOrder;
  19. private PreparedStatement psGetOrder;
  20. private PreparedStatement psGetOrderDetail;
  21. private CallableStatement cs;
  22. public AccesMySQL (char dbType, String dbName, String usuari, String password)
  23. {
  24. try
  25. {
  26. ResultSet taulesBaseDades;
  27. String[] tipus = {"TABLE"};
  28. int i=1;
  29.  
  30. switch(dbType)
  31. {
  32. case 'M': case'm':
  33. Class.forName("com.mysql.jdbc.Driver");
  34.  
  35. String url = "jdbc:mysql://localhost:3306/"+dbName;
  36. cn = DriverManager.getConnection(url, usuari, password);
  37. break;
  38. case 'A': case 'a':
  39. Class.forName("net.ucanacces.jdbc.UcanaccessDriver");
  40. cn = DriverManager.getConnection("jdbc:ucanaccess://"+dbName+".mdb");
  41. break;
  42. }
  43. st = cn.createStatement();
  44. psProduct = cn.prepareStatement("INSERT INTO products "
  45. + "(productCode, productName, quantityInStock, buyPrice, msrp)"
  46. + "VALUES (?,?,?,?,?)");
  47. psGetOrder = cn.prepareStatement("SELECT orderNumber, orderDate, requiredDate, shippedDate, status, comments, customerNumber"
  48. + "FROM orders"
  49. + "WHERE orderNumber=?");
  50. psGetOrderDetail = cn.prepareStatement("SELECT orderNumber, productCode, quantityOrdered, priceEach, orderLineNumber"
  51. + "FROM orderdetails"
  52. + "WHERE orderNumber=?");
  53. psInsertOrder = cn.prepareStatement("INSERT INTO orders "
  54. + "(orderNumber, orderDate, requiredDate, shippedDate, status, comments, customerNumber)"
  55. + "VALUES (?,?,?,?,?,?,?)");
  56. }
  57. catch (Exception e)
  58. {
  59. System.out.println(e.getMessage());
  60. }
  61. }
  62.  
  63. private boolean TypeEsValid(char type) {
  64. return type =='a'|| type =='A'||type =='m'||type =='M';
  65. }
  66.  
  67. public boolean InsertModel(Product p) throws SQLException
  68. {
  69. psProduct.setString(1, p.getProductName());
  70. psProduct.setString(2, p.getProductName());
  71. psProduct.setInt(3, p.getQuantityStock());
  72.  
  73. return false;
  74. }
  75. public boolean InsertCustomer(Customer c)
  76. {
  77. return false;
  78. }
  79.  
  80. public boolean InsertComanda(Order o, OrderDetail od) throws SQLException
  81. {
  82. try
  83. {
  84. cn.setAutoCommit(false);
  85.  
  86. cs = cn.prepareCall("{call ExisteixCustomer(?, ?)}");
  87. cs.registerOutParameter(2, Types.BOOLEAN);
  88. cs.setInt(1, o.getCustomerNumber());
  89. cs.execute();
  90. if (cs.getBoolean(2))
  91. {
  92. InsertOrder(o);
  93. InsertOrderDetail(od);
  94. }
  95. else
  96. throw new Exception("Aquest customer no existeix");
  97.  
  98. cn.commit();
  99. }
  100. catch (Exception err)
  101. {
  102. cn.rollback();
  103. }
  104. finally
  105. {
  106. cn.setAutoCommit(true);
  107. }
  108.  
  109. return false;
  110. }
  111. private boolean InsertOrder(Order o) throws Exception
  112. {
  113. boolean resultat;
  114. cs = cn.prepareCall("{call ExisteixOrder(?, ?)}");
  115. cs.registerOutParameter(2, Types.BOOLEAN);
  116. cs.setInt(1, o.getNumber());
  117. cs.execute();
  118. if (!cs.getBoolean(2))
  119. {
  120. psInsertOrder.setInt(1, o.getNumber());
  121. psInsertOrder.setString(2, o.getDate());
  122. psInsertOrder.setString(3, o.getRequiredDate());
  123. psInsertOrder.setString(4, o.getShippedDate());
  124. psInsertOrder.setString(5, o.getStatus());
  125. psInsertOrder.setString(6, o.getComments());
  126. psInsertOrder.setInt(7, o.getCustomerNumber());
  127. }
  128. else
  129. throw new Exception("Aquest customer no existeix");
  130. resultat = psInsertOrder.execute();
  131. return resultat;
  132. }
  133. private boolean InsertOrderDetail(OrderDetail od) throws Exception
  134. {
  135. cs = cn.prepareCall("{call ExisteixOrder(?, ?)}");
  136. cs.registerOutParameter(2, Types.BOOLEAN);
  137. cs.setInt(1, od.getNumber());
  138. cs.execute();
  139. if (cs.getBoolean(2))
  140. {
  141. for(LineOrder lo : od.getLineOrders())
  142. {
  143. String sql = "INSERT INTO ordersdetails "
  144. + "(orderNumber, orderDate, requiredDate, shippedDate, status, comments, customerNumber)"
  145. + "VALUES (" + od.getNumber() + "," + lo.getProductCode()+ "," + lo.getQuantityOrdered() + "," + lo.getPriceEach() + "," + lo.getOrderLineNumber() + ")";
  146. st.executeUpdate(sql);
  147. }
  148. }
  149. else
  150. throw new Exception("Aquest customer no existeix");
  151. return true;
  152.  
  153. }
  154.  
  155. public Order GetOrder(int codiComanda) throws SQLException
  156. {
  157. Order ordre = null;
  158. psGetOrder.setInt(1, codiComanda);
  159. ResultSet rs = psGetOrder.executeQuery();
  160. if(rs.next())
  161. {
  162. ordre = new Order(rs.getInt("orderNumber"), rs.getString("orderDate"), rs.getString("requiredDate"), rs.getString("shippedDate"), rs.getString("status"), rs.getString("comments"), rs.getInt("customerNumber"));
  163. }
  164. return ordre;
  165. }
  166. public OrderDetail GetOrderDetail(int codiComanda) throws SQLException
  167. {
  168. OrderDetail detallOrdre = null;
  169. ArrayList<LineOrder> lineOrders;
  170. int i = 0;
  171. psGetOrder.setInt(1, codiComanda);
  172. ResultSet rs = psGetOrder.executeQuery();
  173. lineOrders = new ArrayList<LineOrder>();
  174. while(rs.next())
  175. {
  176. lineOrders.set(i, new LineOrder(rs.getString("productCode"), rs.getInt("quantityOrdered"),rs.getDouble("priceEach"),rs.getInt("orderLineNumber")));
  177. i++;
  178. }
  179. detallOrdre = new OrderDetail(rs.getInt("orderNumber"), lineOrders);
  180. return detallOrdre;
  181. }
  182. public double GetTotalOrder(int codiComanda)
  183. {
  184. return 0;
  185. }
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement