You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by th...@apache.org on 2019/10/21 04:13:27 UTC

[commons-dbutils] 01/05: Add a annotation Column for mapping

This is an automated email from the ASF dual-hosted git repository.

thecarlhall pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbutils.git

commit 99071e60fbde76d6584946cc9e08fb97a2aac31f
Author: rewerma <re...@163.com>
AuthorDate: Fri Jul 12 03:21:24 2019 +0800

    Add a annotation Column for mapping
---
 src/main/java/org/apache/commons/dbutils/BeanProcessor.java | 11 ++++++++++-
 .../java/org/apache/commons/dbutils/annotations/Column.java | 13 +++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/commons/dbutils/BeanProcessor.java b/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
index 0f0b7ce..ada9009 100644
--- a/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
+++ b/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.dbutils;
 
+import org.apache.commons.dbutils.annotations.Column;
+
 import java.beans.BeanInfo;
 import java.beans.IntrospectionException;
 import java.beans.Introspector;
@@ -474,7 +476,14 @@ public class BeanProcessor {
             }
             for (int i = 0; i < props.length; i++) {
 
-                if (propertyName.equalsIgnoreCase(props[i].getName())) {
+                PropertyDescriptor prop = props[i];
+                Column column = prop.getReadMethod().getAnnotation(Column.class);
+                if (column != null) {
+                    if (propertyName.equalsIgnoreCase(column.name())){
+                        columnToProperty[col] = i;
+                        break;
+                    }
+                } else if (propertyName.equalsIgnoreCase(prop.getName())) {
                     columnToProperty[col] = i;
                     break;
                 }
diff --git a/src/main/java/org/apache/commons/dbutils/annotations/Column.java b/src/main/java/org/apache/commons/dbutils/annotations/Column.java
new file mode 100644
index 0000000..75e712f
--- /dev/null
+++ b/src/main/java/org/apache/commons/dbutils/annotations/Column.java
@@ -0,0 +1,13 @@
+package org.apache.commons.dbutils.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Column {
+
+    String name() default "";
+}