@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; }