Advertisement
Guest User

Untitled

a guest
May 28th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. Skip to content
  2. This repository
  3. Search
  4. Pull requests
  5. Issues
  6. Marketplace
  7. Gist
  8. @mieru
  9. Sign out
  10. Watch 0
  11. Star 0
  12. Fork 0 mieru/smbapp
  13. Code Issues 0 Pull requests 0 Projects 0 Wiki Settings Insights
  14. Branch: master Find file Copy pathsmbapp/smbcustsrv/src/main/java/dbmenager/abstr/AbstractDAO.java
  15. 5a9359f on 30 Dec 2016
  16. @mieru mieru Mocna Refaktoryzacja
  17. 1 contributor
  18. RawBlameHistory
  19. 96 lines (81 sloc) 3.07 KB
  20. package dbmenager.abstr;
  21.  
  22. import java.lang.reflect.Field;
  23. import java.lang.reflect.Modifier;
  24. import java.math.BigInteger;
  25. import java.sql.Date;
  26. import java.util.List;
  27.  
  28. import javax.persistence.EntityManager;
  29. import javax.persistence.PersistenceContext;
  30. import javax.persistence.TypedQuery;
  31.  
  32. public abstract class AbstractDAO<T> {
  33. @PersistenceContext(unitName = "smbcustsrv")
  34. protected EntityManager entityManager;
  35.  
  36.  
  37. public T update(T value) {
  38. try {
  39. entityManager.merge(value);
  40. return value;
  41. } catch (Exception e) {
  42. System.out.println(e.getMessage()); // FIXME log to file
  43. return null;
  44. }
  45. }
  46.  
  47. public T insert(T value) {
  48. try {
  49. entityManager.persist(value);
  50. return value;
  51. } catch (Exception e) {
  52. System.out.println(e.getMessage());// FIXME log to file
  53. return null;
  54. }
  55. }
  56.  
  57. public boolean delete(T value) {
  58. try {
  59. T toBeRemoved = entityManager.merge(value);
  60. entityManager.remove(toBeRemoved);
  61. return true;
  62. } catch (Exception e) {
  63. System.out.println(e.getMessage());// FIXME log to file
  64. return false;
  65. }
  66. }
  67.  
  68. protected Class<T> dbEntity;
  69.  
  70. public List<T> findEntity(T value) {
  71. try {
  72. StringBuilder queryString = new StringBuilder();
  73. queryString.append("SELECT " + value.getClass().getSimpleName() + " FROM "
  74. + value.getClass().getSimpleName() + " " + value.getClass().getSimpleName() + " WHERE 1=1");
  75. for (Field field : value.getClass().getDeclaredFields()) {
  76. field.setAccessible(true);
  77. if (field.get(value) != null && !Modifier.isStatic(field.getModifiers())
  78. && !Modifier.isStatic(field.getModifiers()) && !Modifier.isFinal(field.getModifiers())) {
  79. if (field.getType().isAssignableFrom(String.class) || field.getType().isAssignableFrom(Date.class)
  80. || field.getType().isAssignableFrom(BigInteger.class)) {
  81. queryString.append(" AND " + value.getClass().getSimpleName() + "." + field.getName() + " = '"
  82. + field.get(value) + "'");
  83. } else {
  84. queryString.append(" AND " + value.getClass().getSimpleName() + "." + field.getName() + " = "
  85. + field.get(value));
  86. }
  87. }
  88. }
  89. System.out.println(queryString.toString());
  90. List<T> queryResult = entityManager.createQuery(queryString.toString()).getResultList();
  91. return queryResult;
  92. } catch (Exception e) {
  93. System.out.println("factory.abstr.AbstractFactory.findEntity() - Blad w generowaniu zapytania");
  94. return null;
  95. }
  96. }
  97.  
  98. public T findEntityByID(Integer primaryKey) {
  99. String sql = "SELECT " + dbEntity.getSimpleName() + " FROM " + dbEntity.getSimpleName() + " "
  100. + dbEntity.getSimpleName() + " WHERE " + dbEntity.getSimpleName() + "."
  101. + dbEntity.getDeclaredFields()[1].getName() + " = " + primaryKey;
  102. System.out.println("LOG[sql findEntityByID]: " + sql);
  103. T queryResault = (T) entityManager.createQuery(sql).getSingleResult();
  104. return queryResault;
  105. }
  106.  
  107. public List<T> findAll() {
  108. TypedQuery<T> queryResault = entityManager.createNamedQuery(dbEntity.getSimpleName() + ".findAll", dbEntity);
  109. return queryResault.getResultList();
  110. }
  111.  
  112.  
  113.  
  114. }
  115. Contact GitHub API Training Shop Blog About
  116. © 2017 GitHub, Inc. Terms Privacy Security Status Help
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement