Jersey MongoDB的使用
Jersey MongoDB的使用
前面介绍了Jersey与Redis的整合使用,这一章节我们介绍,jersey整合MongoDB数据库。
关于MongoDB数据库我们不做过多介绍,通过本次教程可以实现mongodb增删改查的简单使用,如果需要对mongodb有深入的学习,请参考MongoDB教程
引入依赖
<!--引入mongodb的依赖 --><!-- ============================== MongoDB start======================= --><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-mongodb</artifactId><version>1.8.0.RELEASE</version><exclusions><exclusion><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>3.2.2</version></dependency><!-- ============================== MongoDB end======================= -->创建User类
User类上需要加上Document注解 其中collection=”user” 类似于mysql数据库中的users表、
id字段上加上@Id注解,表示mongodb会自动将该字段识别为id,如果该值为Null,mongodb会自动将内置的ObjectId作为id使用,所以在做插入数据的时候,需要我们手动设置id。
配置文件
spring-mongodb.xml文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mongo="http://www.springframework.org/schema/data/mongo"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/data/mongohttp://www.springframework.org/schema/data/mongo/spring-mongo.xsd"><!-- spring连接mongodb数据库的配置host:mongodb 主机port:mongodb 端口号credentials 格式:${userName}:${passWord}@${dbname} userName mongodb的用户名 passWorld mongodb的密码 dbname mongodb的数据库max-wait-time 最大等待时间connect-timeout 连接超时时间--><mongo:mongo-client host="${host}" port="${port}" credentials="${userName}:${passWord}@${dbname}" id="mongo"><mongo:client-options write-concern="SAFE"max-wait-time="1500"connect-timeout="1000"threads-allowed-to-block-for-connection-multiplier="100"socket-keep-alive="true"socket-timeout="1500"connections-per-host="200" /></mongo:mongo-client><mongo:db-factory id="mongoDbFactory" dbname="${dbname}" mongo-ref="mongo" /><!--Srping mongo Template--><bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"><constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/></bean></beans>UserService接口以及实现
UserService接口
public interface UserService {public void insert(User user);public void update(User user);public void delete(String id);public User selectById(String id);public List<User> selectAll(); }UserServiceImpl实现
我们使用Spring自动生成bean的方式生成该对象,所以需要加上@Service注解,同时需要注入MongoDBTemplate
服务提供UserResource
需要注意的是,之前的介绍中Resource类不需要继承和实现,不需要使用注解,但是在本项目中,我们需要在Resource中注入UserService,因此也需要将Resource的创建交给Spring进行管理。
@Component//resource转换为spring组件 @Path("/user") public class UserResource {@Resourceprivate UserService userService;@Path("/add")@POSTpublic Response add(@FormParam("id") String id,@FormParam("name") String name,@FormParam("age") int age){User user = new User();user.setAge(age);user.setName(name);user.setId(id);userService.insert(user);return JerseyTool.returnSuccess(new ResponseDto("OK","添加用户成功").toString());}/**** 查询所有用户信息* @return*/@GET@Path("/getAll")public Response getAll(){List<User> users = userService.selectAll();return JerseyTool.returnSuccess(JSON.toJSONString(users));}/*** 根据用户id查询用户* @param id* @return*/@GET@Path("/getById")public Response getById(@QueryParam("id") String id){User user = userService.selectById(id);return JerseyTool.returnSuccess(JSON.toJSONString(user));}/*** 更新用户信息* @param id* @param name* @param age* @return*/@PUT@Path("update")public Response update(@FormParam("id") String id,@FormParam("name") String name,@FormParam("age") int age){User user = new User();user.setAge(age);user.setName(name);user.setId(id);userService.update(user);return JerseyTool.returnSuccess(new ResponseDto("OK","添加用户成功").toString());}/*** 根据id删除用户* @param id* @return*/@DELETE@Path("/delete")public Response deleteById(@QueryParam("id") String id){userService.delete(id);return JerseyTool.returnSuccess(new ResponseDto("OK","删除用户成功").toString());} }为了更方便的响应json结果,我提供了ResponseDto。
public class ResponseDto {private String code;private String msg;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public ResponseDto(String code, String msg) {this.code = code;this.msg = msg;}@Overridepublic String toString() {JSONObject json = new JSONObject();json.put("code",getCode());json.put("msg",getMsg());return json.toString();} }测试
通过Main方法启动程序.
为了更方便的测试,我们使用谷歌浏览器Postman插件进行测试。
1、添加用户
2、查询所有用户
3、根据id查询用户
4、删除用户
Jersey系列相关源码请访问:Jersey_learing项目
总结
以上是生活随笔为你收集整理的Jersey MongoDB的使用的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 常用机器学习算法汇总比较(完)
- 下一篇: 【开发工具】盘点IDEA那些超级实用插件