mybatis学习(五)--spring整合mybatis

来源:互联网 发布:淘宝网一次性全棉短裤 编辑:程序博客网 时间:2024/05/21 06:48

spring整合mybatis需要mybatis提供的mybatis-spring-xx.jar包,可以从https://github.com/mybatis/ibatis-spring/releases下载对应的版本。

  • 导入spring和mybatis相关jar包

  • 在web.xml中配置springmvc相关配置文件、applicationContext配置文件位置

    web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  <display-name>mybatis_spring</display-name>  <welcome-file-list>    <welcome-file>index.html</welcome-file>    <welcome-file>index.htm</welcome-file>    <welcome-file>index.jsp</welcome-file>    <welcome-file>default.html</welcome-file>    <welcome-file>default.htm</welcome-file>    <welcome-file>default.jsp</welcome-file>  </welcome-file-list>   <!-- 配置spring文件 -->       <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:configs/applicationContext.xml</param-value>      </context-param>      <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>      </listener>  <!-- 配置springMVC -->  <servlet>        <servlet-name>springmvc</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:configs/spring-mvc-servlet.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>springmvc</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>
  • 编写springmvc配置文件

spring-mvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:aop="http://www.springframework.org/schema/aop"    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">    <!-- 启用MVC支持 -->    <mvc:annotation-driven />    <mvc:default-servlet-handler />    <!-- 自动扫描控制器 -->    <context:component-scan base-package="com.mybatis" use-default-filters="false">        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>    </context:component-scan>    <!-- 视图解析器 -->    <bean        class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/WEB-INF/views/"></property>        <property name="suffix" value=".jsp"></property>    </bean></beans>
  • 编写applicationContext配置文件

    applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><beans  xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:tx="http://www.springframework.org/schema/tx"       xmlns:jdbc="http://www.springframework.org/schema/jdbc"       xmlns:context="http://www.springframework.org/schema/context"       xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"       xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd     http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd">    <!-- 扫描其它组件 -->    <context:component-scan base-package="com.mybatis">        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>    </context:component-scan>    <!-- 指定配置文件位置 -->    <context:property-placeholder location="classpath:configs/db.properties"/>    <!-- 配置数据源 -->    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">        <property name="driverClassName" value="${mysql.driver}"></property>        <property name="url" value="${mysql.url}"></property>        <property name="username" value="${mysql.username}"></property>        <property name="password" value="${mysql.password}"></property>    </bean>    <!-- 事务管理器 -->    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource" />    </bean>    <!-- 开启基于注解的事务控制 -->    <tx:annotation-driven ></tx:annotation-driven>    <!-- 整合mybatis -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource" />        <property name="mapperLocations" value="classpath:configs/mapper/*.xml"></property>    </bean>    <!--设置扫描接口所在的包  -->    <mybatis:scan base-package="com.mybatis.dao" /></beans>
  1. 以下进行测试:
    -1.编写实体类
public class User {    private Integer id;    private String username;    private String password;    private String gender;//省略setter、getter}

-2. 编写接口

package com.mybatis.dao;import com.mybatis.entity.User;public interface UserMapper {    User login(User user);}

-3.编写UserService ,将接口注入进去

@Servicepublic class UserService {    @Autowired    private UserMapper userMapper;    public User login(User user){        return userMapper.login(user);    }}

-4. 编写UserControllrt,将UserService注入进去

@Controllerpublic class UserController {    @Autowired    private UserService userService;    @RequestMapping("/login")    public String login(){        return "login";    }    @RequestMapping("/toLogin")    public String login(User user){        User user2 = userService.login(user);        if(user2!= null){            return "main";        }        return "login";         }}

-5.login.jsp

    <form action="toLogin" method="post">        <input type="text" name="username" /><br />        <input type="password"name="password" /><br />         <input type="submit" value="登录" />    </form>

-6.main.jsp

<title>登录成功</title></head><body>    <h2>登录成功!</h2></body>

测试结果:
这里写图片描述

整合成功,本文只用了mybatis整合spring做了一个简单的登录,但在真实项目中其他配置就需要各位根据需求自己添加啦。

附(测试项目结构):
这里写图片描述

阅读全文
0 0
原创粉丝点击