Spring Boot 实战 :集成 MongoDB,西安java开发视频

/**

  • @Description 插入对象

  • @param mongo mongo对象

  • @return

  • Create at: 2019-03-29 16:10:55

  • @author:

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

开源完整内容戳这里

Alex

  • Revision:

  • 2019-03-29 16:10:55 - first revision by Alex

*/

public String insert(T mongo) {

try {

mongoTemplate.save(mongo);

return “success”;

} catch (Exception e) {

e.printStackTrace();

return “error”;

}

}

/**

  • @Description 设置id

  • @param id

  • @return

  • Create at: 2019-03-29 16:12:02

  • @author: Alex

  • Revision:

  • 2019-03-29 16:12:02 - first revision by Alex

*/

public Query setId(String id) {

Query query = new Query(Criteria.where("_id").is(id));

return query;

}

/**

  • @Description 获取UpdateQuery

  • @return

  • Create at: 2019-03-29 16:12:33

  • @author: Alex

  • Revision:

  • 2019-03-29 16:12:33 - first revision by Alex

*/

public UpdateQuery getUpdateQuery() {

return new UpdateQuery();

}

/**

  • @Description 根据id更新

  • @param query setId的query

  • @param up update对象

  • @param entityClass 对象class

  • @return

  • Create at: 2019-03-29 16:13:09

  • @author: Alex

  • Revision:

  • 2019-03-29 16:13:09 - first revision by Alex

*/

public String updateById(Query query,UpdateQuery up,Class entityClass) {

try {

mongoTemplate.updateFirst(query, up.getUpdate(), entityClass);

return “success”;

} catch (Exception e) {

e.printStackTrace();

return “error”;

}

}

/**

  • @Description 查询全部

  • @param entityClass 对象class

  • @return

  • Create at: 2019-03-29 16:14:57

  • @author: Alex

  • Revision:

  • 2019-03-29 16:14:57 - first revision by Alex

*/

public List findAll(Class entityClass) {

return mongoTemplate.findAll(entityClass);

}

/**

  • @Description 根据id查询

  • @param id

  • @param entityClass 对象class

  • @return

  • Create at: 2019-03-29 16:16:20

  • @author: Alex

  • Revision:

  • 2019-03-29 16:16:20 - first revision by Alex

*/

public T selectById(String id,Class entityClass) {

Query query = new Query(Criteria.where("_id").is(id));

return mongoTemplate.findOne(query, entityClass);

}

/**

  • @Description 根据Criteria查询

  • @param criteria

  • @param entityClass 对象class

  • @return

  • Create at: 2019-03-29 16:17:57

  • @author: Alex

  • Revision:

  • 2019-03-29 16:17:57 - first revision by Alex

*/

public List select(Criteria criteria,Class entityClass) {

Query query = new Query();

query.addCriteria(criteria);

return mongoTemplate.find(query, entityClass);

}

/**

  • @Description 删除对象

  • @param mongo mongo对象

  • @return

  • Create at: 2019-03-29 16:18:45

  • @author: Alex

  • Revision:

  • 2019-03-29 16:18:45 - first revision by Alex

*/

public String delete(T mongo) {

try {

mongoTemplate.remove(mongo);

return “success”;

} catch (Exception e) {

e.printStackTrace();

return “error”;

}

}

/**

  • @Description 根据id删除

  • @param id

  • @param entityClass 对象class

  • @return

  • Create at: 2019-03-29 16:20:10

  • @author: Alex

  • Revision:

  • 2019-03-29 16:20:10 - first revision by Alex

*/

public String deleteById(String id,Class entityClass) {

try {

T mongo = selectById(id,entityClass);

delete(mongo);

return “success”;

} catch (Exception e) {

e.printStackTrace();

return “error”;

}

}

}

配置 mongoMapper  这个地方继承了一下 Tk_Batis ,Tk 和 Mongo 可以同时使用并不会冲突

package com.cs.mongodb.mapper;

import com.cs.mongodb.model.Mongo;

import com.cs.mongodb.repository.BaseMapper;

/**

  • @InterfaceName MongoMapper

  • @Param

  • @Author linluochen

  • @Date 2019/5/3 10:39

  • @Version 1.0

**/

public interface MongoMapper extends BaseMapper {

}

调用 mongoService

package com.cs.mongodb.service.impl;

import com.cs.mongodb.model.Mongo;

import com.cs.mongodb.repository.BaseMongoService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.mongodb.core.MongoTemplate;

import org.springframework.stereotype.Service;

import java.util.HashMap;

import java.util.Map;

/**

  • @InterfaceName MongoService

  • @Param

  • @Author linluochen

  • @Date 2019/5/3 10:40

  • @Version 1.0

**/

@Service

public class MongoServiceImpl extends BaseMongoService { // 实现类继承的是 MongoDBService 一定要注意

@Autowired

private MongoTemplate mongoTemplate;

public Map<String,String> insertOne(Mongo Mongo) {

Map<String,String> relMap = new HashMap<String,String>();

try {

mongoTemplate.insert(Mongo);

relMap.put(“relMsg”,“success”);

} catch (Exception e) {

e.printStackTrace();

relMap.put(“relMsg”,“error”);

}

return relMap;

}

}

测试 mongoDB

package com.cs.mongodb;

import com.cs.mongodb.model.Mongo;

import com.cs.mongodb.service.impl.MongoServiceImpl;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;

import java.util.List;

@RunWith(SpringRunner.class)

@SpringBootTest

public class MongodbApplicationTests {

@Resource

private MongoServiceImpl mongoService;

@Test

public void contextLoads() {

}

/**

  • MongoDB 测试

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mongodb-orm简介Mongodb ORM是基于java的ORM框架,简化了SDK的使用,使代码变得更清晰、简单。 与Ibatis类似,将查询、执行语句封装在xml中,与代码隔离。简称MQL。 项目中使用加入mongodb orm的支持包1. 添加jar包或maven支持<dependency>     <groupId>com.mongodborm</groupId>     <artifactId>mongodb-orm</artifactId>     <version>0.0.1-RELEASE</version> </dependency>2. 初始化mongodb templet        spring中初始化<bean id="mongoTemplet" class="com.mongodb.client.MongoClientTemplet">     <property name="factory">         <bean class="com.mongodb.client.MongoORMFactoryBean">             <property name="dataSource">                 <bean class="com.mongodb.client.MongoDataSource">                     <property name="nodeList" value="127.0.0.1:27017" />                     <property name="dbName" value="your db name" />                     <property name="userName" value="user name" />                     <property name="passWord" value="password" /> <!-- 可使用默认值 --> <property name="connectionsPerHost" value="" />                     <property name="threadsAllowedToBlock" value="" />                     <property name="connectionTimeOut" value="" />                     <property name="maxRetryTime" value="" />                     <property name="socketTimeOut" value="" />                 </bean>             </property>             <property name="configLocations">                 <list>                     <value>classpath:mql/mongo-mql.xml</value>                 </list>             </property>         </bean>     </property> </bean>        代码初始化    try {       Resource resource =  new ClassPathResource("mongo-mql.xml");           MongoORMFactoryBean factory = new MongoORMFactoryBean();       factory.setConfigLocations(new Resource[]{resource});       factory.init();          MongoClientTemplet templet = new MongoClientTemplet();       templet.setFactory(factory);       templet.init();     } catch(Exception e) {       e.printStackTrace();     }编写MQLMapping<mapping id="model" class="test.mongodborm.Model">         <property column="_id" name="id" />         <property column="name" name="name" />         <property column="time" name="time" value="0" />         <property column="status" name="status" /> </mapping> <mapping id="extendModel" class="test.mongodborm.Model" extends="model">     <property column="newProperty" name="newProperty" /> </mapping>  select<select id="queryModelList" collection="test_sample">     <query class="java.lang.String">         <property column="name" name="${value}" />     </query>     <field mapping="model" />     <order>         <property column="time" value="desc" />     </order> </select> update/findAndModify<update id="updateModel" collection="test_sample">     <query class="test.mongodborm.Model$Child">         <property column="name" name="name" ignoreNull="true" />         <property column="time" operate="gte" value="0" type="number" />         <property column="status" operate="in">             <list type="number">0,1</list>         </property>     </query>     <action class="java.util.Map">         <property column="name" name="name" operate="set" />         <property column="status" operate="set" />     </action> </update>有嵌套的查询<select id="queryModelList3" collection="test_sample">     <query class="java.lang.String">         <property column="_id" value="${value}" />         <property column="time" value="0" type="number" />     </query>     <field class="java.util.Map">         <property column="name" name="name" />         <property column="parent" name="parent">             <value class="test.mongodborm.Model$Parent">                 <property column="name" name="name" />                 <property column="child" name="child">                     <value class="test.mongodborm.Model$Child">                         <property column="name" name="name" />                         <property column="time" name="time" value="0" />                     </value>                 </property>                 <property column="data" name="data">                     <value class="java.util.Map">                         <property column="title" name="title" />                         <property column="content" name="content" />                     </value>                 </property>             </value>         </property>         <property column="data" name="data">             <value class="java.util.Map">                 <property column="title" name="title" />                 <property column="content" name="content" />             </value>         </property>     </field>     <order class="java.util.Map">         <property column="time" name="time" value="desc" />     </order> </select>Templet用法Model model = mongoTemplet.findOne("queryModelList", "yuxiangping"); List<Model> list = mongoTemplet.findOne("queryModelList", ""); Model model = new Model(); model.setTime(1L); Map<String, String> action = new HashMap<String, String>(); action.put("name", "yuxiangping-update"); int update = mongoT emplet.update("updateModel", model, action);        更多的使用方法参见 sample.xml 标签:Mongodb

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值