Spring 3.0.5+MyBatis3.0.4整合非完全例子

基于注解的mybatis和spring整合:http://huangmin001.iteye.com/blog/1185806
这个文章说的很详细,很值得一看.
Maven + SpringMVC + Mybatis【绝非原创,单纯整理】【四】: http://playgod1984.iteye.com/blog/984113 最后面提示说id和映射关系.

考虑到MyBatis注解方式比较麻烦,可能都还没有xml来的方便,易读.所以就没有加上去.如有兴趣,自行参考http://panyongzheng.iteye.com/blog/1604067

spring+springmvc+ibatis整合注解方式实例(附带数据库)http://blog.csdn.net/mgb18986349193/article/details/8494494
这个例子也很详细,但是并没有对Mapper接口和xml里面的sql id做映射.不过这是否是必须的?可以适当考虑.

Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解三
http://www.2cto.com/kf/201108/98937.html
基于namespace接口与公用dao的区别,从MyBatis3.0开始,对mapper中的namespace属性新增了一个特性:可以指定具体的接口来作为持久化操作类,在接口中定义与映射文件中id属性值相同的方法,MyBatis会自动去绑定和执行对应的SQL语句。这种接口实现方式,需要为每个Mapper创建一个接口,如果系统做大了,维护这些类会比较麻烦,大象个人倾向于基础服务式的Dao实现类.

if exists (select 1
from  sysobjects
where  id = object_id(‘Users’)
and   type = ‘U’)
drop table Users
go

/*==============================================================*/
/* Table: Users                                                 */
/*==============================================================*/
create table Users (
id                   int                  not null,
name                 varchar(50)          null,
password             varchar(50)          null,
email                varchar(50)          null,
remarks              varchar(500)         null,
constraint PK_USERS primary key nonclustered (id)
)
go

SpringMVC
———————————————————————-
jars of SpringMVC
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
com.springsource.net.sf.cglib-2.2.0.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.apache.commons.fileupload-1.2.0.jar
com.springsource.org.apache.commons.httpclient-3.1.0.jar
com.springsource.org.apache.commons.lang-2.4.0.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.commons.pool-1.5.3.jar
com.springsource.org.apache.log4j-1.2.15.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
com.springsource.org.codehaus.jackson.mapper-1.0.0.jar
commons-dbcp.jar
jotm.jar
org.springframework.aop-3.0.5.RELEASE.jar
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.aspects-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.instrument-3.0.5.RELEASE.jar
org.springframework.instrument.tomcat-3.0.5.RELEASE.jar
org.springframework.jdbc-3.0.5.RELEASE.jar
org.springframework.orm-3.0.5.RELEASE.jar
org.springframework.oxm-3.0.5.RELEASE.jar
org.springframework.transaction-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar
org.springframework.web.portlet-3.0.5.RELEASE.jar
org.springframework.web.servlet-3.0.5.RELEASE.jar
org.springframework.web.struts-3.0.5.RELEASE.jar
persistence.jar
xapool.jar
———————————————————————————–

web.xml 设定applicationContext.xml,SpringMVCIbatis-servlet.xml默认位置
======================================


  1.  

SpringMVCIbatis-servlet.xml

applicationContext.xml
=====================================

HelloController.java

index.jsp
===========================================

WebRoot/pages/sayHello.jsp
=====================================

增加MyBatis3.0功能
jars of Project
========================================
cglib-2.2.2.jar
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
com.springsource.net.sf.cglib-2.2.0.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.apache.commons.fileupload-1.2.0.jar
com.springsource.org.apache.commons.httpclient-3.1.0.jar
com.springsource.org.apache.commons.lang-2.4.0.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.commons.pool-1.5.3.jar
com.springsource.org.apache.log4j-1.2.15.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
com.springsource.org.codehaus.jackson.mapper-1.0.0.jar
commons-dbcp.jar
commons-logging-1.1.1.jar
jotm.jar
junit-4.8.1.jar
log4j-1.2.15.jar
mybatis-3.0.4.jar
mybatis-spring-1.0.0.jar
ognl-2.6.9.jar
org.springframework.aop-3.0.5.RELEASE.jar
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.aspects-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.instrument-3.0.5.RELEASE.jar
org.springframework.instrument.tomcat-3.0.5.RELEASE.jar
org.springframework.jdbc-3.0.5.RELEASE.jar
org.springframework.orm-3.0.5.RELEASE.jar
org.springframework.oxm-3.0.5.RELEASE.jar
org.springframework.transaction-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar
org.springframework.web.portlet-3.0.5.RELEASE.jar
org.springframework.web.servlet-3.0.5.RELEASE.jar
org.springframework.web.struts-3.0.5.RELEASE.jar
persistence.jar
spring-test-3.0.5.RELEASE.jar
sqljdbc4.jar
xapool.jar

src/config/database.properties
======================================

Users.java
==================================

两种方式:
1.DAO方式,直接在dao里面调用xml的sql id.
IUsersDao.java
========================================

UsersDao.java
=================================

2.Mapper方式:A,实现类在实现接口的时候,直接封装和使用接口; b,接口的方法跟xml里面的sql id一定要一样.
IUsersMapper.java
=====================================


  1.  

UsersMapper.java
==================================

注意:

实现接口的同时,又使用它自己,并且这个方法名字又对应xml里面的ID.
service->mapper->DAO

http://www.idashu.me/Mybatis-development.html 这里的说法又是不一样,不知道能否运行不(还没尝试)?
service->mapper, 它少了DAO,其实mapper就是DAO.
注意文件的存放位置.
http://www.2cto.com/kf/201108/98937.html
基于namespace接口与公用dao的区别,从MyBatis3.0开始,对mapper中的namespace属性新增了一个特性:可以指定具体的接口来作为持久化操作类,在接口中定义与映射文件中id属性值相同的方法,MyBatis会自动去绑定和执行对应的SQL语句。这种接口实现方式,需要为每个Mapper创建一个接口,如果系统做大了,维护这些类会比较麻烦,大象个人倾向于基础服务式的Dao实现类.

同时使用两种方式的例子:
IUsersService.java
=======================================================

UsersServiceImpl.java
=======================================================

HelloController.java
===========================================

com/mapper/xml/Users.xml
==================================================

mybatis-config.xml
========================================

applicationContext.xml
=============================

SpringMVCIbatis-servlet.xml
==============================================

log4j.properties
=================================

WebRoot/pages/sayHello.jsp
=================================================