Spring MVC 集成 MyBatis

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/quan20111992/article/details/88618036

Spring web项目开发

一、Spring MVC 项目搭建

二、Spring MVC 集成 MyBatis

三、Spring MVC 实现CRUD功能


POM 配置

    <properties>
        <spring.version>5.1.2.RELEASE</spring.version>
        <mybatis.version>3.4.6</mybatis.version>
        <mybatis-spring.version>1.3.2</mybatis-spring.version>
        <mysql.version>5.1.37</mysql.version>
        <druid.version>1.1.13</druid.version>

       
    </properties>

    <dependencies>
 
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis-spring.version}</version>
        </dependency>

        <!-- 数据库 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>

    </dependencies>

    <build>
        <resources>
        	<!-- 缺少此配置会导致编译后的包中无XML文件 -->
            <resource>
                <directory>${basedir}/src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

SqlSessionFactory 配置

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:mybatis-config/mybatis-config.xml" />
        <property name="mapperLocations" value="classpath*:spring/mybatis/sample/**/mapper/*.xml" />
    </bean>

两种映射方式

  • 基于namespace.id的方式
  • 基于interface的方式

示例
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">

<mapper namespace="spring.mybatis.sample.basic.user.dao.UserDao">

    <select id="queryOneUser" parameterType="spring.mybatis.sample.basic.user.dao.domain.User"
            resultType="spring.mybatis.sample.basic.user.dao.domain.User">
        SELECT
        id as id,
        user_name as userName,
        age as age,
        sex as sex,
        address as address
        FROM SYSTEM_USER
        <trim prefix="WHERE" prefixOverrides="OR | AND">
            <if test="id != null and id != ''">
                and id = #{id}
            </if>
            <if test="userName != null and userNmae != ''">
                and user_name = #{userName}
            </if>
            <if test="age != null">
                and age = #{age}
            </if>
            <if test="sex != null">
                and sex = #{sex}
            </if>
            <if test="address != null and address != ''">
                and address = #{address}
            </if>
        </trim>
    </select>
</mapper>
  1. 基于namespace.id的方式
<bean class="org.mybatis.spring.SqlSessionTemplate">
	<constructor-arg ref="sqlSessionFactory" />
</bean>
@Repository("userDao")
public class UserDaoImpl implements UserDao {

    @Autowired
    private SqlSessionTemplate sqlSessionTemplate;

    @Override
    public User queryOneUser(User user) {
        return this.sqlSessionTemplate.selectOne("spring.mybatis.sample.basic.user.dao.UserDao.queryOneUser", user);
    }
}
  1. 基于interface的方式(无需提供Dao实现类)
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    <property name="basePackage" value="spring.mybatis.sample.**.dao"/>
</bean>
package spring.mybatis.sample.basic.user.dao;

import spring.mybatis.sample.basic.user.dao.domain.User;

public interface UserDao {

    User queryOneUser(User user);
}

代码结构
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/quan20111992/article/details/88618036