博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring整合mybatis
阅读量:6068 次
发布时间:2019-06-20

本文共 4180 字,大约阅读时间需要 13 分钟。

昨天整合了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            List
list = 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、部署服务,测试

 

 

转载于:https://www.cnblogs.com/chenjack/p/6385442.html

你可能感兴趣的文章
程序员最喜爱的12个Android应用开发框架二(转)
查看>>
vim学习与理解
查看>>
DIRECTSHOW在VS2005中PVOID64问题和配置问题
查看>>
MapReduce的模式,算法以及用例
查看>>
《Advanced Linux Programming》读书笔记(1)
查看>>
zabbix agent item
查看>>
一步一步学习SignalR进行实时通信_7_非代理
查看>>
AOL重组为两大业务部门 全球裁员500人
查看>>
字符设备与块设备的区别
查看>>
为什么我弃用GNOME转向KDE(2)
查看>>
Redis学习记录初篇
查看>>
爬虫案例若干-爬取CSDN博文,糗事百科段子以及淘宝的图片
查看>>
Web实时通信技术
查看>>
第三章 计算机及服务器硬件组成结合企业运维场景 总结
查看>>
IntelliJ IDEA解决Tomcal启动报错
查看>>
默认虚拟主机设置
查看>>
七周五次课(1月26日)
查看>>
Linux系统一些系统查看指令
查看>>
php中的短标签 太坑人了
查看>>
[译] 可维护的 ETL:使管道更容易支持和扩展的技巧
查看>>