Spring Data MongoDB 二:添加、删除操作

一.简介 Spring Data MongoDB 项目提供与MongoDB文档数据库的集成,Spring与Hibernate集成时,,Spring提供了org.springframework.orm.hibernate3.HibernateTemplate实现了对数据的CRUD操作, Spring Data MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的CRUD的操作,包括对集成的对象映射文件和POJO之间的CRUD的操作。

今天我们要介绍Java代码实现对MongoDB实现添加和删除操作。

二.添加

Spring Data MongoDB 的MongoTemplate提供了两种存储文档方式,分别是save和insert方法,这两种的区别:

(1)save :我们在新增文档时,如果有一个相同_ID的文档时,会覆盖原来的。

(2)insert:我们在新增文档时,如果有一个相同的_ID时,就会新增失败。

1.接下来我们分别介绍的两种方式的具体语法。

(1)Save方式

方法:

1)void save (Object objectToSave) 保存文档到默认的集合。

2)void save(Object objectToSave, String collectionName) 对指定的集合进行保存。

(2) Insert方式

方法:

1)void insert(Object objectToSave) 保存文档到默认的集合。

2)void insertAll(ObjectobjectsToSave) 批量添加到默认的集合。

3)void insert(Object objectToSave, String collectionName) 对指定的集合进行保存。

2. Spring实现MongoDB的添加操作

我们在上一篇有介绍了,Spring Data MongoDB环境的搭建,这里不在具体介绍,我们直接实战。

(1)介绍接口以及实现方法

第一步:实现一个基础接口,是比较通用的 MongoBase.java类

public interface MongoBase<T> {// insert添加public void insert(T object,String collectionName); // save添加public void save(T object,String collectionName); //批量添加public void insertAll(List<T> object);}

第二步:我们实现文档的结构,也是实体类。

我们这边有两个实体类,订单类(Orders.java)和对应订单详情类(Item.java),这里我们实现内嵌文档。如果没有内嵌文档的结构,只要对一个实体类的操作就OK。

1)Orders.Java

/** * 订单 * @author zhengcy * */public class Orders implements Serializable {/** * */private static final long serialVersionUID = 1L;//IDprivate String id;//订单号private String onumber;//日期private Date date;//客户名称private String cname;//订单private List<Item> items;public String getId() {return id;}public void setId(String id) {this.id = id;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public String getCname() {return cname;}public void setCname(String cname) {this.cname = cname;}public String getOnumber() {return onumber;}public void setOnumber(String onumber) {this.onumber = onumber;}public List<Item> getItems() {return items;}public void setItems(List<Item> items) {this.items = items;}} 2) Item.java/** * 产品订购表 * @author zhengcy * */public class Item {//数量private Integer quantity;//单价private Double price;//产品编码private String pnumber;public Integer getQuantity() {return quantity;}public void setQuantity(Integer quantity) {this.quantity = quantity;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}public String getPnumber() {return pnumber;}public void setPnumber(String pnumber) {this.pnumber = pnumber;}}

第三步:实现OrdersDao类,就是实现Orders自己操作数据库的接口,这个OrdersDao也继承了MongoBase接口,我们这边OrdersDao没实现其他额外的接口。

/** * 订单Dao * @author zhengcy * */public interface OrdersDao extends MongoBase<Orders> {}

第四步:实现OrdersDaoImpl具体类,这边是实际操作数据库。

/** * 订单实现 * @author zhengcy * */@Repository("ordersDao")public class OrdersDaoImpl implements OrdersDao {@Resourceprivate MongoTemplate mongoTemplate;@Overridepublic void insert(Orders object, String collectionName) {mongoTemplate.insert(object, collectionName);}@Overridepublic void save(Orders object, String collectionName) {mongoTemplate.save(object, collectionName);}@Overridepublic void insertAll(List<Orders> objects) {mongoTemplate.insertAll(objects);}}

(2)实现测试类,我们进行测试

我们这边为了节省时间,就没写服务类,我们直接调用dao就可以了,实现了TestOrders.java类

少吃点,吃好的。

Spring Data MongoDB 二:添加、删除操作

相关文章:

你感兴趣的文章:

标签云: