Java 访问 MongoDB (使用Spring-Data-MongoDB)
2016-02-24 19:40
666 查看
使用Spring-Data-MongoDB
首页:http://projects.spring.io/spring-data-mongodb/
详细的参考文档:http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/
简单配置:
1、引入依赖:
2、Spring配置文件:
@Configuration配置法:
XML配置法:
3、定义一个实体类(带注解):
几种常用注解的用法:
@Document:把一个java类声明为mongodb的文档,可以通过collection参数指定这个类对应的Collection名字。
@Id:文档的唯一标识,在mongodb中为ObjectId,它是唯一的:时间戳+机器标识+进程ID+自增计数器(确保同一秒内产生的Id不会冲突)。
@Field:指定保存在mongoDB的名字,感觉类成员名字不好又不想改的时候可以用这个注解。
@Indexed:声明该字段需要索引,建索引可以大大的提高查询效率。
@CompoundIndex:复合索引的声明,建复合索引可以有效地提高多字段的查询效率。
@Transient:映射忽略的字段,该字段不会保存到mongodb。
@PersistenceConstructor:声明构造函数,作用是把从数据库取出的数据实例化为对象。该构造函数传入的值为从DBObject中取出的数据。
4、把实体类插入mongoDB:
首页:http://projects.spring.io/spring-data-mongodb/
详细的参考文档:http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/
简单配置:
1、引入依赖:
<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.8.2.RELEASE</version> </dependency>
2、Spring配置文件:
@Configuration配置法:
@Configuration public class MongoConfig { @Value("${mongo.ip}") private String MONGO_IP; @Value("${mongo.port}") private int MONGO_PORT; @Bean public MongoDbFactory mongoDbLog() throws Exception { return new SimpleMongoDbFactory(new MongoClient(MONGO_IP, MONGO_PORT), "dbName"); } @Bean public MongoTemplate mongoTemplateLog() throws Exception { return new MongoTemplate(mongoDbLog()); } }
XML配置法:
<!-- 使用缺省的配置,省略<mongo:options/>配置 --> <mongo:mongo host="${mongo.ip}" port="${mongo.port}"/> <!-- Db Factory--> <mongo:db-factory id="logDbFactory" dbname="dbName" mongo-ref="mongo" /> <!-- mongodb模板 for log --> <bean id="mongoTemplateLogDB" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongoDbFactory" ref="logDbFactory" /> </bean>
3、定义一个实体类(带注解):
public class UserOpLog { @Id private String id; @Field("uId") private int userId; //用户ID @Field("ip") private String loginIp;//请求IP private String method;//方法名 private String url;//请求URL @Transient private String params;//请求参数,用于保存到MySQL中 @Field("rCode") private String resultCode;//返回代码 @Field("rMsg") private String resultMsg;//返回信息 @Field("ms") private long costMs;//耗时,单位:毫秒 private long ctime;//创建时间 @Field("params") Set<Object> allParams;//所有未经过处理的参数,包括JSON String,Form Data,和Query String JsonResult result; //返回结果 //getters、setters略…… }
几种常用注解的用法:
@Document:把一个java类声明为mongodb的文档,可以通过collection参数指定这个类对应的Collection名字。
@Id:文档的唯一标识,在mongodb中为ObjectId,它是唯一的:时间戳+机器标识+进程ID+自增计数器(确保同一秒内产生的Id不会冲突)。
@Field:指定保存在mongoDB的名字,感觉类成员名字不好又不想改的时候可以用这个注解。
@Indexed:声明该字段需要索引,建索引可以大大的提高查询效率。
@CompoundIndex:复合索引的声明,建复合索引可以有效地提高多字段的查询效率。
@Transient:映射忽略的字段,该字段不会保存到mongodb。
@PersistenceConstructor:声明构造函数,作用是把从数据库取出的数据实例化为对象。该构造函数传入的值为从DBObject中取出的数据。
4、把实体类插入mongoDB:
@Autowired private MongoTemplate mongoTemplateLogDB; UserOpLog userOpLog = new UserOpLog(); mongoTemplateLogDB.save(userOpLog, "collectionName");
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- 分享微信开发Html5轻游戏中的几个坑
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- 如何在 Fedora 上安装 MongoDB 服务器
- PropertyChangeListener简单理解
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序