Jersey MongoDB的使用
Jersey MongoDB的使用
前面介紹了Jersey與Redis的整合使用,這一章節(jié)我們介紹,jersey整合MongoDB數(shù)據(jù)庫。
關(guān)于MongoDB數(shù)據(jù)庫我們不做過多介紹,通過本次教程可以實(shí)現(xiàn)mongodb增刪改查的簡單使用,如果需要對(duì)mongodb有深入的學(xué)習(xí),請(qǐng)參考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======================= -->創(chuàng)建User類
User類上需要加上Document注解 其中collection=”user” 類似于mysql數(shù)據(jù)庫中的users表、
id字段上加上@Id注解,表示mongodb會(huì)自動(dòng)將該字段識(shí)別為id,如果該值為Null,mongodb會(huì)自動(dòng)將內(nèi)置的ObjectId作為id使用,所以在做插入數(shù)據(jù)的時(shí)候,需要我們手動(dòng)設(shè)置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數(shù)據(jù)庫的配置host:mongodb 主機(jī)port:mongodb 端口號(hào)credentials 格式:${userName}:${passWord}@${dbname} userName mongodb的用戶名 passWorld mongodb的密碼 dbname mongodb的數(shù)據(jù)庫max-wait-time 最大等待時(shí)間connect-timeout 連接超時(shí)時(shí)間--><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接口以及實(shí)現(xiàn)
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實(shí)現(xiàn)
我們使用Spring自動(dòng)生成bean的方式生成該對(duì)象,所以需要加上@Service注解,同時(shí)需要注入MongoDBTemplate
服務(wù)提供UserResource
需要注意的是,之前的介紹中Resource類不需要繼承和實(shí)現(xiàn),不需要使用注解,但是在本項(xiàng)目中,我們需要在Resource中注入U(xiǎn)serService,因此也需要將Resource的創(chuàng)建交給Spring進(jìn)行管理。
@Component//resource轉(zhuǎn)換為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));}/*** 根據(jù)用戶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());}/*** 根據(jù)id刪除用戶* @param id* @return*/@DELETE@Path("/delete")public Response deleteById(@QueryParam("id") String id){userService.delete(id);return JerseyTool.returnSuccess(new ResponseDto("OK","刪除用戶成功").toString());} }為了更方便的響應(yīng)json結(jié)果,我提供了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方法啟動(dòng)程序.
為了更方便的測試,我們使用谷歌瀏覽器Postman插件進(jìn)行測試。
1、添加用戶
2、查詢所有用戶
3、根據(jù)id查詢用戶
4、刪除用戶
Jersey系列相關(guān)源碼請(qǐng)?jiān)L問:Jersey_learing項(xiàng)目
總結(jié)
以上是生活随笔為你收集整理的Jersey MongoDB的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用机器学习算法汇总比较(完)
- 下一篇: 前端开发怎么用php,做web前端开发怎