springside4整合mybatis

来源:互联网 发布:软件过程 编辑:程序博客网 时间:2024/05/24 05:07

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完成。
原创粉丝点击