日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jersey MongoDB的使用

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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。

@Document(collection = "users") public class User {@Idprivate String id;private String name;private int age;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;} }

配置文件

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

@Service public class UserServiceImpl implements UserService{@Resourceprivate MongoTemplate mongoTemplate;/*** 插入用戶* @param user*/public void insert(User user) {try {mongoTemplate.insert(user);}catch (Exception e){e.printStackTrace();}}/*** 更新用戶* @param user*/public void update(User user) {try {Query query = new Query();query.addCriteria(new Criteria("_id").is(user.getId()));Update update = new Update();update.set("age",user.getAge());update.set("name",user.getName());mongoTemplate.updateFirst(query,update,User.class);}catch (Exception e){e.printStackTrace();}}/*** 根據id刪除用戶* @param id*/public void delete(String id) {try {Query query = new Query();query.addCriteria(new Criteria("_id").is(id));mongoTemplate.remove(query,User.class);}catch (Exception e){e.printStackTrace();}}/*** 通過id 查詢用戶* @param id* @return*/public User selectById(String id) {try {Query query = new Query();query.addCriteria(new Criteria("_id").is(id));User user = (User)mongoTemplate.findOne(query,User.class);return user;}catch (Exception e){e.printStackTrace();return null;}}/*** 查詢所有用戶* @return*/public List<User> selectAll() {try {return mongoTemplate.findAll(User.class);}catch (Exception e){e.printStackTrace();return null;}} }

服務提供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的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。