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那些超级实用插件