日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mongodb中Gson和java##Bean对象转化类

發布時間:2023/12/2 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mongodb中Gson和java##Bean对象转化类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此類使用感覺比較繁瑣, 每個字段加注解才可以使用, 不如mongoTemplate使用方便, 但如果使用mongo客戶端的話, 還是比手動拼接快一點, 所以貼在這兒

package com.iwhere.util;import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.Date;import org.apache.commons.beanutils.BeanUtils;import com.mongodb.BasicDBObject; import com.mongodb.DBObject; /*** DBObject 和 javaBean之間轉換* @author 231*/ public class ConvertDBObject {/*** 把實體bean對象轉換成DBObject* * @param bean* @return* @throws IllegalArgumentException* @throws IllegalAccessException*/public static <T> DBObject bean2DBObject(T bean) throws IllegalArgumentException, IllegalAccessException {if (bean == null) {return null;}DBObject dbObject = new BasicDBObject();// 獲取對象對應類中的所有屬性域Field[] fields = bean.getClass().getDeclaredFields();// 獲取所有注解for (Field field : fields) {org.springframework.data.mongodb.core.mapping.Field anno = field.getAnnotation(org.springframework.data.mongodb.core.mapping.Field.class);// 獲取屬性名String varName = field.getName();if ("serialVersionUID".equals(varName) || "_id".equals(varName)) {continue;}// 獲取注解的值varName = anno.value();// 修改訪問控制權限boolean accessFlag = field.isAccessible();if (!accessFlag) {field.setAccessible(true);}Object param = field.get(bean);if (param == null) {continue;} else if (param instanceof Integer) {// 判斷變量的類型int value = ((Integer) param).intValue();dbObject.put(varName, value);} else if (param instanceof String) {String value = (String) param;dbObject.put(varName, value);} else if (param instanceof Double) {double value = ((Double) param).doubleValue();dbObject.put(varName, value);} else if (param instanceof Float) {float value = ((Float) param).floatValue();dbObject.put(varName, value);} else if (param instanceof Long) {long value = ((Long) param).longValue();dbObject.put(varName, value);} else if (param instanceof Boolean) {boolean value = ((Boolean) param).booleanValue();dbObject.put(varName, value);} else if (param instanceof Date) {Date value = (Date) param;dbObject.put(varName, value);}// 恢復訪問控制權限 field.setAccessible(accessFlag);}return dbObject;}/*** 把DBObject轉換成bean對象* * @param dbObject* @param bean* @return* @throws IllegalAccessException* @throws InvocationTargetException* @throws NoSuchMethodException*/public static <T> T dbObject2Bean(DBObject dbObject, T bean)throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {if (bean == null) {return null;}Field[] fields = bean.getClass().getDeclaredFields();for (Field field : fields) {String varName = field.getName();org.springframework.data.mongodb.core.mapping.Field anno = field.getAnnotation(org.springframework.data.mongodb.core.mapping.Field.class);if ("serialVersionUID".equals(varName) || "_id".equals(varName)) {continue;}String fieldName = anno.value();Object object = dbObject.get(fieldName);if (object != null) {BeanUtils.setProperty(bean, varName, object);}}return bean;} }

?

轉載于:https://www.cnblogs.com/wenbronk/p/6482720.html

總結

以上是生活随笔為你收集整理的mongodb中Gson和java##Bean对象转化类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。