搞技术的手艺人都有个习惯,没事喜欢瞎折腾。我也不例外,懂点java、orm 之类的技术,最近又有点迷上了mongodb,目前对mongodb了解的还不算太多,但兴趣到挺大。有句俗语:瘾大水平低。通常是指某人某项技艺不高,但偏偏喜欢耍弄这项自己不精的技艺。这句话
搞技术的手艺人都有个习惯,没事喜欢瞎折腾。我也不例外,懂点java、orm 之类的技术,最近又有点迷上了mongodb,目前对mongodb了解的还不算太多,但兴趣到挺大。有句俗语:瘾大水平低。通常是指某人某项技艺不高,但偏偏喜欢耍弄这项自己不精的技艺。这句话对我现在挺适合。
why
orm给众多的javaer留下了很多美好的印象,原因只有一个“方便”,口水:虽然hibernate也是orm,但使用起来并不方便。
打算自己写个类里面封装一套crud的方法,用这个类去调用 basicdbobject ,dbcursor 等一些mongodb java api 里面的类。 现在的想法暂且不是很完美,但是可以简化一些web应用的开发,说一个场景:用户输入表单信息,将输入的表单信息,通过action层转换成表单对象,对象传入service层操作具体的业务逻辑,再传入底层通过api操作mongodb,这是一个常见的场景。
但是如果一个表单上有很多字段,那么对象到了操作mongodb的时候将需要手工取出来,在一个个的put进去,一个页面上有20、30个字段需要存入,这么一来一旦这样的场景多了,我会崩溃的。如果还要来输入的数据从mongodb中在get出来,还要一个个的取,我会更加崩溃。。。。。。。这样的假象让我不得不去折腾一下了。
场景如图所示:
注释:用户通过html/jsp前端页面提交参数,action层将参数转换成对象传到 service层,service层再 传 对象 到dao层,dao层 把对象转换成参数 调用api ,到了调用底层api的时候需要一个个get/put参数,如果一多就是个悲剧啊。
how
就因为这样让我想到折腾可以进行的办法,通过通过java反射加上sdk中注释的功能,这样可以灵活的操作,废话少说,进行介绍具体怎么反射和采用注释的折腾过程,主要思路如下:
1.主要实现程序 mymongodbormimpl
class mymongodbormimpl {
// 添加数据
public void addobject(object clazz) { //传入 new 对象,获得表名和对象实例化参数
map map= mappingtools.copyabeantomap(clazz ); //调用自己写的 映射工具
system.out.println(map );
iterator val=map.values().iterator(); // 通过反射得到 new 对象中的值
iterator key=map.keyset().iterator(); // 通过反射得到 new 对象中的属性
basicdbobject doc = new basicdbobject();
while (key.hasnext()){
doc.put(key.next().tostring() , val.next() ); // 对 mongodb basicdbobject 对象 进行赋值
}
coll.insert(doc);
}
}
2.测试程序 testmongodbormcase
public class testmongodbormcase {
public static void main(string[] args) throws exception {
mymongodbormimpl impl= new mymongodbormimpl();
// 实例化users 对象,并且插入
users user= new users();
user.setusername("javabloger");
user.setid(12);
user.setpassword("www.javabloger.com ");
user.setdept("dept");
impl.addobject(user );
// 实例化testpojo 对象,并且插入
testpojo pojo1= new testpojo();
pojo1.setids(2);
pojo1.setusernames("username–javabloger");
impl.addobject(pojo1 );
}
}
主要代码介绍:
1.users.java、testpojo.java 是pojo对象,里面set/get一些参数值;
2.ormappingtools.java 是pojo 对象和 mongodb对象映射的工具类;
3.columnmapping.java 是 注释程序,可以让对象属性和表属性更加灵活;
4.mymongodbormimpl.java 是一个封装 mongodb api 的程序;
5.testmongodbormcase.java 测试程序。
详细内容如图所示:
从这里下载代码 mongodbjavaorm.zip
还可以从这里下载代码 mongodbjavaorm.zip
因为只是草稿,代码有些粗糙里面只写了一个添加的方法,主要想把精力还是在构思上,这也许只是个开始,有必要的话下面将写一个小工具完善这个想法,给大家进行分享。
相关文章:
mongodb 入门 介绍
mongodb 集群
java操作 mongodb nosql数据库
–end–
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!