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完成。