Пример #1
0
 @Override
 public String buildPrimaryConditionSql(Object entity) throws SQLException {
   AnnotationUtil annotationUtil = AnnotationUtil.getInstance();
   Map<String, Object> primary = annotationUtil.getPrimaryValue(entity);
   String sql = "";
   Map<String, PropertyDescriptor> beanMap = null;
   try {
     beanMap = annotationUtil.getBeanInfo(entity.getClass());
   } catch (IntrospectionException e1) {
     throw new SQLException("查询失败:" + e1.getMessage());
   }
   Set<String> primaryNames = primary.keySet();
   String joinWord = " where ";
   for (Iterator<String> it = primaryNames.iterator(); it.hasNext(); ) {
     String primaryName = it.next();
     if (primary.get(primaryName) == null) {
       continue;
     }
     if (sql.indexOf("where") != -1) {
       joinWord = " and ";
     }
     // 获取主键的数据类型
     String typeName = beanMap.get(primaryName).getPropertyType().getSimpleName().toLowerCase();
     // 若为字符类型
     sql += joinWord;
     if (typeName.equals("string")) {
       sql += primaryName + "='" + primary.get(primaryName) + "'";
     } else {
       sql += primaryName + "=" + primary.get(primaryName);
     }
   }
   return sql;
 }