网上有许多关于springmvc与mybatis整合的实例,但是由于mybaits-spring有好几种配置方式,这样看起来会觉得很乱,不知道哪个是对的,觉得很复杂(至少我的感觉是这样的)。把关于这块的学习过程记录下来,留作备注同时与大家分享交流。 工具 :eclipse-luna、m
网上有许多关于springmvc与mybatis整合的实例,但是由于mybaits-spring有好几种配置方式,这样看起来会觉得很乱,不知道哪个是对的,觉得很复杂(至少我的感觉是这样的)。把关于这块的学习过程记录下来,留作备注同时与大家分享交流。
工具:eclipse-luna、mysql数据库
springmvc版本:3.2.1
mybatis版本:3.0.4
mybaits-spring版本:
服务器:tomcat7.0.57
文件结构:
项目所使用的lib包截图:
我们按照javaweb项目在服务器中执行顺序(web项目首先加载web.xml文件)来说:
web.xml文件:在文件中,我们需要配置spring的监听器contextloaderlistener和springmvc的转发器dispatcherservlet,在web.xml中加入如下代码
org.springframework.web.context.contextloaderlistenercontextconfiglocation/web-inf/spring-applicationcontext.xmlencodingfilterorg.springframework.web.filter.characterencodingfilterencodingutf-8encodingfilter*.yyencodingfilter*.jspspringmvcorg.springframework.web.servlet.dispatcherservletcontextconfiglocation/web-inf/spring-dispatcher.xml1springmvc*.yy
在web.xml文件中,包含spring的配置文件:spring-applicationcontext.xml ;springmvc的配置文件:spring-dispatcher.xml。
spring-dispatcher.xml文件:在文件中加入如下代码
org.springframework.web.servlet.view.jstlview
spring-applicationcontext.xml文件:在文件中加入如下代码
${driverclassname}${password}${username}${url}
文件中包含数据库连接池datasource的配置文件:jdbc.properties;spring与mybatis结合的配置文件:spring-mybatis.xml。spring-mybatis.xml文件的内容可以都放在spring.xml文件中,合成一个spring.xml文件和分成两个文件各有各的好处,看你的习惯jdbc.properties文件:在文件中加入如下代码
driverclassname=com.mysql.jdbc.driverurl=jdbc:mysql://localhost:3306/你的数据库名字username=rootpassword=root
spring-mybatis.xml文件:在文件中加入如下代码
classpath:com/yy/mapper/**/*mapper.xml
文件中包含mybatis的配置文件:mybatis-config.xmlmybatis-config.xml文件:在文件中加入如下代码
配置文件到这里就配置完了,下面我们说一下controller、service、dao、model四层的代码controller层:
package com.yy.controller;import javax.annotation.resource;import javax.servlet.http.httpservletrequest;import javax.servlet.http.httpservletresponse;import org.springframework.stereotype.controller;import org.springframework.web.bind.annotation.requestmapping;import org.springframework.web.servlet.modelandview;import com.yy.model.order;import com.yy.service.buyorderservice;@controller@requestmapping(buyorder)public class buyordercontroller { @resource private buyorderservice buyorderservice; @requestmapping(/addbuyorder) public modelandview addbuyorder(httpservletrequest resquest,httpservletresponse response){ return new modelandview(/test); } @requestmapping(/deletebuyorder) public modelandview deletebuyorder(httpservletrequest resquest,httpservletresponse response){ return new modelandview(/test); } @requestmapping(/getbuyorderbyid) public modelandview getbuyorderbyid(int id,httpservletrequest resquest,httpservletresponse response){ order order = buyorderservice.getbuyorderbyid(id); system.out.println(order.getid()+++++order.getid()); return new modelandview(/test); } @requestmapping(/getbuyorderlist) public modelandview getbuyorderlist(httpservletrequest resquest,httpservletresponse response){ return new modelandview(/test); }}
service层
package com.yy.service;import com.yy.model.order;public interface buyorderservice { public order getbuyorderbyid(int id); public void addbuyorder(order order);}
serviceimpl层
package com.yy.service.impl;import javax.annotation.resource;import org.springframework.stereotype.service;import com.yy.dao.buyorderdao;import com.yy.model.order;import com.yy.service.buyorderservice;@servicepublic class buyorderserviceimpl implements buyorderservice{ @resource private buyorderdao buyorderdao; @override public order getbuyorderbyid(int id) { return buyorderdao.getbuyorderbyid(id); } @override public void addbuyorder(order order) { buyorderdao.addbuyorder(order); }}
dao层
package com.yy.dao;import com.yy.model.order;public interface buyorderdao { order getbuyorderbyid(int id); void addbuyorder(order order);}
mapper映射器类、映射器xml文件
映射器类文件
package com.yy.mapper;import org.mybatis.spring.support.sqlsessiondaosupport;import org.springframework.stereotype.repository;import com.yy.dao.buyorderdao;import com.yy.model.order;@repositorypublic class buyordermapper extends sqlsessiondaosupport implements buyorderdao { @override public order getbuyorderbyid(int id) { return (order)this.getsqlsession().selectone(com.yy.mapper.buyordermapper.getbuyorderbyid, id); } @override public void addbuyorder(order order) { this.getsqlsession().insert(org.mybatis.spring.com.yy.mapper.addbuyorder,order); }}
映射器xml文件
select * from order1 where id = #{id}
model层
package com.yy.model;import java.sql.date;public class order { private int id; private string code; private string username; private string tel; private string addresss; private date create_time; public order(){} public order(int id, string code, string username, string tel,string addresss, date create_time) { super(); this.id = id; this.code = code; this.username = username; this.tel = tel; this.addresss = addresss; this.create_time = create_time; } public int getid() { return id; } public void setid(int id) { this.id = id; } public string getcode() { return code; } public void setcode(string code) { this.code = code; } public string getusername() { return username; } public void setusername(string username) { this.username = username; } public string gettel() { return tel; } public void settel(string tel) { this.tel = tel; } public string getaddresss() { return addresss; } public void setaddresss(string addresss) { this.addresss = addresss; } public date getcreate_time() { return create_time; } public void setcreate_time(date create_time) { this.create_time = create_time; }}
前台jsp文件:
index.jsp
insert title here欢è¿
test.jsp insert title heretest
æ°æ®sqlæä»¶ï¼
drop table if exists `order1`;create table `order1` ( `id` int(10) not null auto_increment, `code` varchar(20) default null, `username` varchar(20) default null, `tel` varchar(20) default null, `address` varchar(20) default null, `create_time` datetime default null, primary key (`id`)) engine=innodb auto_increment=3 default charset=utf8;-- ------------------------------ records of order1-- ----------------------------insert into `order1` values ('1', '001', 'yy', '123456', 'äºæ´²', '2014-12-16 16:19:51');insert into `order1` values ('2', '002', 'yyy', '654321', '欧洲', '2014-12-24 16:21:04');
å°è¿éï¼ä»£ç å°±å
¨é¨åç°äºãåªéçç»èä½ è§å¾ä¸æç½ï¼æ¬¢è¿äº¤æµ