Spring(四)Spring整合Mybatis

版本spring4+MyBatis3+JDK1.8
Spring环境的配置请参考前面文章,本文参考代码将会在资源中上传

jar包

主要包括:数据连接池(dbpc)+io+pool+Spring中jdbc+tx+Spring对MyBatis的支持包+myBatis+数据库连接jar包。
这里写图片描述

application.xml配置文件
整合时将连接数据库的信息以javaBean的形式配置到该文件中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
           <!-- 配置数据源,destroy-method:关闭数据库的连接 -->       
    <bean  id="mydataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://127.0.0.1/mydatabase" />
        <property name="username" value="root" />
        <property name="password" value="root" />   </bean>
    <!-- 配置mybatis自身的信息,都归spring管理 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="mydataSource" />
            <!-- 配置entity -->
        <property name="typeAliasesPackage" value="com.spring.entity" />
            <!-- 配置映射xml文件,注意路径的写法 -->
        <property name="mapperLocations" value="classpath*:com/spring/dao/*Mapper.xml" />
    </bean>
    <!-- 配置dao组件,value是dao层的包路径 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.spring.dao" />
    </bean>
    <!-- 配置服务层组件 -->
    <bean id="deptServices" class="com.spring.service.DeptServices"/>
</beans>

Dao层
1.接口:包含一个返回值为list的查询方法

package com.spring.dao;
import java.util.List;
import com.spring.entity.Dept;
public interface DeptMapper {
    public List<Dept> findDept();
}

2.对应的映射文件

<?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">
<mapper namespace="com.spring.dao.DeptMapper">
    <select id="findDept" resultMap="deptMapper">
        select * from dept
    </select>
    <resultMap type="Dept" id="deptMapper">
        <id property="id" column="id" />
        <result property="dname" column="dname" />
    </resultMap>
</mapper>

Service层

创建一个类,并将其通过注解标记为service,并调用dao层的方法

package com.spring.service;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.spring.dao.DeptMapper;
import com.spring.entity.Dept;
@Service
public class DeptServices {
    @Resource(name="deptMapper")
    private DeptMapper deptMapper;
    public List<Dept> findDept(){
        return deptMapper.findDept();   
    }
}

实体类

创建一个类名为Dept的类,包含Integer的id和String类型的dname、dnumber、dloc以及他们的get和set方法。

控制层
1.需要的工具类

package com.spring.until;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.google.gson.Gson;

public class CommController {
    public WebApplicationContext getWebApplicationContext(HttpServletRequest request){
        return WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());
    }
    public void toJson(HttpServletResponse response,Object obj) throws IOException{
        response.setCharacterEncoding("utf-8");
        PrintWriter out=response.getWriter();
        out.print(new Gson().toJson(obj));
        out.flush();
        out.close();
    }
}

2.测试整合环境的控制器类

package com.spring.controller;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.spring.service.DeptServices;
import com.spring.until.CommController;
@Controller
@RequestMapping("deptController")
public class DeptController extends CommController{
    private DeptServices deptServices;
    @RequestMapping("findDept")
    public void findDept(HttpServletRequest request,HttpServletResponse response) throws IOException{
        deptServices=(DeptServices) getWebApplicationContext(request).getBean("deptServices");
        toJson(response, deptServices.findDept());
    }
}

注意需要在web.xml中将配置文件添加进去。
页面一个链接即可
<a href="<%=request.getContextPath()%>/deptController/findDept.action">测试spring整合MyBatis</a>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值