1 pom.xml文件中添加mybatis
<!-- mybatis -->
<
dependency
>
<
groupId
>
org.mybatis
</
groupId
>
<
artifactId
>
mybatis
</
artifactId
>
<
version
>
3.2.7
</
version
>
</
dependency
>
<
dependency
>
<
groupId
>
org.mybatis
</
groupId
>
<
artifactId
>
mybatis-spring
</
artifactId
>
<
version
>
1.2.2
</
version
>
</
dependency
>
2 在main/resources下面的applicationContext.xml添加MyBatis相关的配置文件:
<!-- MyBatis配置 -->
<
bean
id
=
"sqlSessionFactory"
class
=
"org.mybatis.spring.SqlSessionFactoryBean"
>
<
property
name
=
"dataSource"
ref
=
"dataSource"
/>
<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
<
property
name
=
"typeAliasesPackage"
value
=
"mycompany.com.entity.mybatis"
/>
<!-- 显式指定Mapper文件位置 -->
<
property
name
=
"mapperLocations"
value
=
"classpath:/mybatis/*Mapper.xml"
/>
</
bean
>
<!-- 扫描basePackage下所有以@MyBatisRepository标识的 接口-->
<
bean
class
=
"org.mybatis.spring.mapper.MapperScannerConfigurer"
>
<
property
name
=
"basePackage"
value
=
"mycompany.com"
/>
<
property
name
=
"annotationClass"
value
=
"mycompany.com.repository.mybatis.MyBatisRepository"
/>
</
bean
>
在
mycompany.com.repository.mybatis 下创建 MyBatisRepository.class
package
mycompany.com.repository.mybatis;
import
java.lang.annotation.Documented;
import
java.lang.annotation.ElementType;
import
java.lang.annotation.Retention;
import
java.lang.annotation.RetentionPolicy;
import
java.lang.annotation.Target;
import
org.springframework.stereotype.Component;
/**
* 标识MyBatis的DAO,方便
{@link org.mybatis.spring.mapper.MapperScannerConfigurer}
的扫描。
*
*
@author
calvin
*
*/
@Retention
(RetentionPolicy.
RUNTIME
)
@Target
(ElementType.
TYPE
)
@Documented
@Component
public
@interface
MyBatisRepository
{
String value()
default
""
;
}
3 添加Mapper.xml
UserMapper.xml
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!
DOCTYPE
mapper
PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"
>
<!-- namespace必须指向Dao接口 -->
<
mapper
namespace
=
"com.bceapp.springbbs.myspring.repository.mybatis.UserMybatisDao"
>
<!--
获取用户: 输出直接映射到对象, login_name列要"as loginName"以方便映射 ,team_id as "team.id"创建team对象并赋值
-->
<
select
id
=
"get"
parameterType
=
"long"
resultType
=
"User"
>
select id, name,
login_name as loginName
from ss_user
where id=#{id}
</
select
>
<!-- 删除用户 -->
<
delete
id
=
"delete"
parameterType
=
"long"
>
delete from ss_user where id=#{id}
</
delete
>
</
mapper
>
4 创建Dao
UserMybatisDao
package
mycompany.com.repository.mybatis;
import
java.util.List;
import
java.util.Map;
import
mycompany.com.entity.mybatis.User;
/**
* 通过@MapperScannerConfigurer扫描目录中的所有接口, 动态在Spring Context中生成实现.
* 方法名称必须与Mapper.xml中保持一致.
*
*
@author
calvin
*/
@MyBatisRepository
public
interface
UserMybatisDao {
User get(Long
id
);
List<User> search(Map<String, Object>
parameters
);
void
save(User
user
);
void
delete(Long
id
);
}
5 service
UserMybatisService
package
com.bceapp.springbbs.myspring.service.mybatis;
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component;
import
org.springframework.transaction.annotation.Transactional;
import
com.bceapp.springbbs.myspring.entity.User;
import
com.bceapp.springbbs.myspring.repository.mybatis.UserMybatisDao;
@Component
@Transactional
public
class
UserMybatisService {
@Autowired
private
UserMybatisDao
userDao
;
public
User getUser(Long
id
) {
return
userDao
.get(
id
);
}
}
6 创建Controller测试
UserController
package
com.bceapp.springbbs.myspring.web;
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Controller;
import
org.springframework.ui.Model;
import
org.springframework.web.bind.annotation.ModelAttribute;
import
org.springframework.web.bind.annotation.PathVariable;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod;
import
org.springframework.web.bind.annotation.RequestParam;
import
com.bceapp.springbbs.myspring.entity.User;
import
com.bceapp.springbbs.myspring.service.mybatis.UserMybatisService;
@Controller
@RequestMapping
(value =
"/account/user"
)
public
class
UserController {
@Autowired
private
UserMybatisService
userMybatisService
;
@RequestMapping
(value =
"select/{id}"
, method = RequestMethod.
GET
)
public
String updateForm(
@PathVariable
(
"id"
) Long
id
, Model
model
) {
User
u
=
userMybatisService
.getUser(
id
);
System.
out
.println(
u
.getLoginName());
model
.addAttribute(
"user"
,
userMybatisService
.getUser(
id
));
return
"test/test"
;
}
}
7 创建test文件夹 创建test.jsp
<%@
page
language
=
"java"
contentType
=
"text/html; charset=UTF-8"
pageEncoding
=
"ISO-8859-1"
%>
<!
DOCTYPE
html
PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
<
html
>
<
head
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=ISO-8859-1"
>
<
title
>
Insert title here
</
title
>
</
head
>
<
body
>
${requestScope.user.loginName }
</
body
>
</
html
>
运行tomcat 登陆后输入 http://127.0.0.1:8080/myspring/account/user/select/1
eclipse 后台显示 "admin"
至此springside4整合mybatis完成。