昨天整合了spring和restlet,实现了restful服务,但是数据库这部分还没着落,今天再整合mybatis,这样1个完整的restful服务就搭建完成了。
项目目录
1、配置数据库连接池和mybatis
如果是纯spring服务,则在spring的配置文件application.xml里配置,如果是restlet则在restlet-servlet.xml里配置,这里接着昨天的restlet服务所以在restlet-servlet.xml里配置。
首先配置数据库dataSource,这里采用c3p0连接池。
然后配置sqlSessionFactory,整合spring和mybatis,配置上mapperLocations,就会自动扫描sql文件。
配置sqlSessionTemplate,注入到dao里,通过sqlSessionTemplate操作数据。
15
2、创建保存sql的xml文件first-sql.xml
在sql文件里配置sql语句,查询的配置成select标签,修改的配置成update标签。
查询结果和Bean的映射通过restMap,查询list的配置方式和单条是一样的,只不过在dao里用selectList。
参数用#{参数名}
update city_list set engineno='0' where city_code='jinan'
3、创建dao层
注入sqlSessionTemplate,查询1条结果用sqlSessionTemplate.selectOne; 查询list用selectList; 查询map用selectMap,在sql.xml里resultType写java.util.HashMap。
package com.chen.rest;import org.mybatis.spring.SqlSessionTemplate;import org.restlet.data.Form;import org.restlet.representation.Representation;import org.restlet.representation.StringRepresentation;import org.restlet.resource.Get;import org.restlet.resource.Post;import org.restlet.resource.ServerResource;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.support.rowset.SqlRowSet;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import java.util.List;import java.util.Map;/** * @author chenjie * @version 1.0 * @since 2017-02-09 */public class QueryCar extends ServerResource{ @Resource private SqlSessionTemplate sqlSessionTemplate; public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) { this.sqlSessionTemplate = sqlSessionTemplate; } /** * post请求 * 通过Representation来获取请求参数 * */ @Post public Representation postQueryCar(Representation entity) { Representation representation = new StringRepresentation("hello post"); try { //查询1条结果 IxintuiBean bean = (IxintuiBean)sqlSessionTemplate.selectOne("queryOneCar","733095477"); System.out.println("selectOne="+bean); //查询map Map map = sqlSessionTemplate.selectMap("queryCarMap", "msgid"); System.out.println("selectMap="+map); //查询list Listlist = sqlSessionTemplate.selectList("queryCarList"); for(int i=0;i
4、创建bean
package com.chen.rest;/** * @author chenjie * @version 1.0 * @since 2017-02-09 */public class IxintuiBean{ private String messageId; private String plateNumber; private String token; public String getMessageId() { return messageId; } public void setMessageId(String messageId) { this.messageId = messageId; } public String getPlateNumber() { return plateNumber; } public void setPlateNumber(String plateNumber) { this.plateNumber = plateNumber; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } @Override public String toString() { return "IxintuiBean{" + "messageId='" + messageId + '\'' + ", plateNumber='" + plateNumber + '\'' + ", token='" + token + '\'' + '}'; }}
5、部署服务,测试