我的視頻課程(基礎):《(NDK)FFmpeg打造Android萬能音頻播放器》
我的視頻課程(進階):《(NDK)FFmpeg打造Android視頻播放器》
我的視頻課程(編碼直播推流):《Android視頻編碼和直播推流》
目錄:
移動大腦-SpringMVc搭建RestFul後臺服務(一)-環境搭建
移動大腦-SpringMVc搭建RestFul後臺服務(二)-配置mysql數據庫
移動大腦-SpringMVc搭建RestFul後臺服務(三)-RestFul接口編寫(模擬用戶註冊登錄)
移動大腦-SpringMVc搭建RestFul後臺服務(四)-添加Token攔截器
移動大腦-SpringMVc搭建RestFul後臺服務(五)-支付寶支付
移動大腦-SpringMVc搭建RestFul後臺服務(六)-微信支付(Android)
移動大腦-SpringMVc搭建RestFul後臺服務(七)-增量更新
接着上一篇博客《移動大腦-SpringMVc搭建RestFul後臺服務(二)-配置mysql數據庫》 ,已經配置好了Mysql數據庫,現在開始編寫RestFul接口了,模擬實現用戶的註冊(PUT)和登錄(POST)兩個接口:
還是最經典的action-service-dao結構
一、創建UserDao.java接口和實現類UserDaoImpl.java
package com.ywl5320.appservice.dao;
import com.ywl5320.appservice.bean.UserBean;
/**
* Created by ywl5320 on 2017/10/12.
*/
public interface UserDao {
/**
* 註冊
* @param userBean
*/
UserBean registor(UserBean userBean);
/**
* 登陸
* @return
*/
UserBean login(String phone, String password);
/**
* 根據名字獲取用戶信息
* @param phone
* @return
*/
UserBean getUser(String phone);
}
package com.ywl5320.appservice.dao;
import com.ywl5320.appservice.bean.UserBean;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import java.util.List;
/**
* Created by ywl5320 on 2017/10/12.
*/
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
public UserBean login(String phone, String password) {
List<UserBean> users = (List<UserBean>) this.getHibernateTemplate().find("from UserBean where phone=? and password=?", phone, password);
if(users != null && users.size() > 0)
{
return users.get(0);
}
return null;
}
public UserBean registor(UserBean userBean) {
this.getHibernateTemplate().save(userBean);
return getUser(userBean.getPhone());
}
public UserBean getUser(String phone) {
List<UserBean> users = (List<UserBean>) this.getHibernateTemplate().find("from UserBean where phone=?", phone);
if(users != null && users.size() > 0)
{
return users.get(0);
}
return null;
}
}
這裏實現類繼承了HibernateDaoSupport類,就可以使用hibernate的語句操作數據庫了。
二、編寫UserService.java類
package com.ywl5320.appservice.service;
import com.ywl5320.appservice.bean.RestFulBean;
import com.ywl5320.appservice.bean.UserBean;
import com.ywl5320.appservice.dao.UserDao;
import com.ywl5320.appservice.util.RestFulUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
/**
* Created by ywl5320 on 2017/10/12.
*/
@Transactional
public class UserService {
@Autowired
private UserDao userDao;
public RestFulBean<UserBean> registorServer(UserBean userBean)
{
UserBean user = userDao.getUser(userBean.getPhone());
if(user != null)
{
return RestFulUtil.getInstance().getResuFulBean(null, 1, "已經註冊過了");
}
else
{
user = userDao.registor(userBean);
if(user != null)
{
return RestFulUtil.getInstance().getResuFulBean(user, 0, "註冊成功");
}
else{
return RestFulUtil.getInstance().getResuFulBean(null, 1, "註冊失敗");
}
}
}
public RestFulBean<UserBean> login(String phone, String password)
{
UserBean user = userDao.login(phone, password);
if(user != null)
{
return RestFulUtil.getInstance().getResuFulBean(user, 0, "登錄成功");
}
else
{
return RestFulUtil.getInstance().getResuFulBean(null, 1, "用戶不存在");
}
}
}
這裏用了註解@Transactional和@Autowired來自動掃描service和注入實體類。
三、在beans.xml中配置service和dao
<!-- 配置server -->
<bean id="loginService" class="com.ywl5320.appservice.service.UserService"/>
<!-- 配置dao -->
<bean id="userDaoImpl" class="com.ywl5320.appservice.dao.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
四、編寫UserAction.java
package com.ywl5320.appservice.action;
import com.ywl5320.appservice.bean.RestFulBean;
import com.ywl5320.appservice.bean.UserBean;
import com.ywl5320.appservice.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
/**
* Created by ywl5320 on 2017-10-2.
*/
@Controller
@RequestMapping("/user")
public class UserAction {
@Autowired
private UserService userService;
/**
* 註冊
* @param userBean
* @return
*/
@ResponseBody
@RequestMapping(value="/register.do", method= RequestMethod.PUT)
public RestFulBean<UserBean> register(@RequestBody UserBean userBean)
{
return userService.registorServer(userBean);
}
/**
* 登錄
* @param phone
* @return
*/
@ResponseBody
@RequestMapping(value="/loginbypwd.do", method= RequestMethod.POST)
public RestFulBean<UserBean> loginByPwd(String phone, String password)
{
System.out.println("phone:" + phone);
return userService.login(phone, password);
}
}
註冊接口:/user/register.do
登錄接口:/user/loginbypwd.do
RestFulUtil.java
package com.ywl5320.appservice.util;
import com.ywl5320.appservice.bean.RestFulBean;
/**
* Created by ywl5320 on 2017-10-15.
*/
public class RestFulUtil<T> {
private RestFulUtil(){}
public static RestFulUtil getInstance()
{
return new RestFulUtil();
}
public RestFulBean<T> getResuFulBean(T o, int status, String msg)
{
RestFulBean<T> objectRestFulBean = new RestFulBean<T>();
objectRestFulBean.setStatus(status);
objectRestFulBean.setMsg(msg);
objectRestFulBean.setData(o);
return objectRestFulBean;
}
}
整體目錄如下:
五、啓動服務,移動端訪問測試(移動端是根據我的GitHub RxjavaRetrofit 項目修改而來的)
1、註冊:
2、註冊2
3、登錄
4、數據庫數據
源碼下載:GitHub 服務端(AppServiceRestFul)和移動端(RxJavaRetrofit)
OK,這樣就完成了註冊登錄接口了,移動端可以順利訪問。下一篇會添加token和攔截器。~~接着看SKT vs EDG了,目測後期EDG有點難了~。