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 "";
+}