时间:2021-07-01 10:21:17 帮助过:19人阅读
- <span style="color: #008000;">/**</span><span style="color: #008000;">
- * 将DBObject转换成Bean对象
- *
- </span><span style="color: #008000;">*/</span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <T><span style="color: #000000;"> T dbObjectToBean(DBObject dbObject, T bean)
- </span><span style="color: #0000ff;">throws</span><span style="color: #000000;"> IllegalAccessException, InvocationTargetException,
- NoSuchMethodException {
- </span><span style="color: #0000ff;">if</span> (bean == <span style="color: #0000ff;">null</span><span style="color: #000000;">) {
- </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span><span style="color: #000000;">;
- }
- Field[] fields </span>=<span style="color: #000000;"> bean.getClass().getDeclaredFields();
- </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> (Field field : fields) {
- String varName </span>=<span style="color: #000000;"> field.getName();
- Object object </span>=<span style="color: #000000;"> dbObject.get(varName);
- </span><span style="color: #0000ff;">if</span> (object != <span style="color: #0000ff;">null</span><span style="color: #000000;">) {
- BeanUtils.setProperty(bean, varName, object);
- }
- }
- </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> bean;
- }
- </span><span style="color: #008000;">//</span><span style="color: #008000;"> 取出Mongo中的属性值,为bean赋值</span>
- <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <T> <span style="color: #0000ff;">void</span><span style="color: #000000;"> setProperty(T bean, String varName, T object) {
- varName </span>= varName.substring(0, 1).toUpperCase() + varName.substring(1<span style="color: #000000;">);
- </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> {
- String type </span>=<span style="color: #000000;"> object.getClass().getName();
- </span><span style="color: #008000;">//</span><span style="color: #008000;"> 类型为String</span>
- <span style="color: #0000ff;">if</span> (type.equals("java.lang.String"<span style="color: #000000;">)) {
- Method m </span>= bean.getClass().getMethod("get" +<span style="color: #000000;"> varName);
- String value </span>=<span style="color: #000000;"> (String) m.invoke(bean);
- </span><span style="color: #0000ff;">if</span> (value == <span style="color: #0000ff;">null</span><span style="color: #000000;">) {
- m </span>=<span style="color: #000000;"> bean.getClass()
- .getMethod(</span>"set" + varName, String.<span style="color: #0000ff;">class</span><span style="color: #000000;">);
- m.invoke(bean, object);
- }
- }
- </span><span style="color: #008000;">//</span><span style="color: #008000;"> 类型为Integer</span>
- <span style="color: #0000ff;">if</span> (type.equals("java.lang.Integer"<span style="color: #000000;">)) {
- Method m </span>= bean.getClass().getMethod("get" +<span style="color: #000000;"> varName);
- String value </span>=<span style="color: #000000;"> (String) m.invoke(bean);
- </span><span style="color: #0000ff;">if</span> (value == <span style="color: #0000ff;">null</span><span style="color: #000000;">) {
- m </span>= bean.getClass().getMethod("set" +<span style="color: #000000;"> varName,
- Integer.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">);
- m.invoke(bean, object);
- }
- }
- </span><span style="color: #008000;">//</span><span style="color: #008000;"> 类型为Boolean</span>
- <span style="color: #0000ff;">if</span> (type.equals("java.lang.Boolean"<span style="color: #000000;">)) {
- Method m </span>= bean.getClass().getMethod("get" +<span style="color: #000000;"> varName);
- String value </span>=<span style="color: #000000;"> (String) m.invoke(bean);
- </span><span style="color: #0000ff;">if</span> (value == <span style="color: #0000ff;">null</span><span style="color: #000000;">) {
- m </span>= bean.getClass().getMethod("set" +<span style="color: #000000;"> varName,
- Boolean.</span><span style="color: #0000ff;">class</span><span style="color: #000000;">);
- m.invoke(bean, object);
- }
- }
- } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (NoSuchMethodException e) {
- e.printStackTrace();
- } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (SecurityException e) {
- e.printStackTrace();
- } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IllegalAccessException e) {
- e.printStackTrace();
- } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IllegalArgumentException e) {
- e.printStackTrace();
- } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (InvocationTargetException e) {
- e.printStackTrace();
- }
- }</span>
MONGODB(四)——DBObject与JavaBean转换
标签: