【MongoDB】Java驱动下,反射实现DAO的写操作
2015-05-04 11:17
211 查看
【前言】随着项目进行,POJO越来越多,每次赋值搞得下面的工程师很崩溃。Hibernate框架的OMG暂时还没研究,先写几个DAO操作提高工作效率。这里先放一个写操作的实现。
同样,这次的Bean中不能有不可实例化的属性。还要注意代码中!methodNameString.equalsIgnoreCase("getClass")这段代码,这是把getClass方法剔除出去,否则也会造成无法序列化的问题。如果Bean中某些属性未赋值,最终Mongo中该属性对应一个null值或者。
package MongoDAO; import java.lang.reflect.Method; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.WriteConcern; public class MongoCollection { DBCollection collection = null; DB mongoDb = null; public MongoCollection(String dbName, String collectionName) { // 初始化... } /** * 基于反射的Bean入库 * @param bean:javaBean * @return void * @author y.t. */ public <T> void StoreBean(T bean) { Class<? extends Object> beanClass = bean.getClass(); if (mongoDb==null || collection == null) { return; } BasicDBObject dbObject = new BasicDBObject(); Method[] methods = beanClass.getMethods(); for (Method method : methods) { String methodNameString = method.getName(); if (methodNameString.startsWith("get")&&(!methodNameString.equalsIgnoreCase("getClass"))) { String field = method.getName(); // java 1.6 的 内存泄露bug substring... String temp = field.substring(field.indexOf("get")+3); field = temp.toLowerCase().charAt(0) + temp.substring(1); try { dbObject.append(field, method.invoke(bean, (Object[]) null)); } catch (Exception e) { e.printStackTrace(); } } } collection.insert(dbObject, WriteConcern.ACKNOWLEDGED); } }
同样,这次的Bean中不能有不可实例化的属性。还要注意代码中!methodNameString.equalsIgnoreCase("getClass")这段代码,这是把getClass方法剔除出去,否则也会造成无法序列化的问题。如果Bean中某些属性未赋值,最终Mongo中该属性对应一个null值或者。
相关文章推荐
- 使用java反射优化Spring自动生成的DAO实现类!
- [自己动手]用Java的反射实现DAO
- MongoDB 通过samus驱动实现基本数据操作
- Java 实现MongoDB Group 操作
- 【NOSQL】非关系型数据库MongoDB ( 通过samus驱动实现基本数据操作 )
- Java实现对MongoDB的AND、OR和IN操作
- mongodb基础系列——java操作mongodb实现CURD
- mongodb基础系列——java操作mongodb实现图片文件功能
- mongodb基础系列——java操作mongodb实现图片文件功能
- mongoDB——java操作mongoDB实现文件上传下载
- Java通过代理类实现数据库DAO操作
- MongoDB学习系列12:Java实现对MongoDB的AND、OR和IN操作
- Java实现对MongoDB的AND、OR和IN操作 ,大于、小于等判断
- Java实现对MongoDB的AND、OR和IN操作
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- JAVA实现DAO基本层CRUD操作
- mongoDB——java操作mongoDB实现文件上传下载
- 【MongoDB】-Java实现对mongodb的And、Or、In操作
- Java实现对MongoDB的AND、OR和IN操作