tensorflow 百度搜索优化 Angular laravel bash neo4j scrapy vue状态管理 纯html网页模板 软件测试实战项目 etc文件夹 pip环境变量 matlab停止运行 mysql时间戳转时间 python数据类型 range函数python python中文手册 python创建对象 python文件 python环境变量配置 javaswitch javatrim java入门级教程 java方法的重载 java初级教程 java语言简介 java的for循环 java生成当前时间 java包名 python下载教程 asp建站系统 网络电视软件下载 rndis驱动下载 微信python退出程序 计价软件 程序卸载 mysql时间比较 js取余数 脚本大师 cdlinux教程
当前位置: 首页 > 学习教程  > 编程语言

Spring学习笔记-05 整合Mybatis

2021/1/13 20:03:07 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

前面我们曾经说到,Spring不仅仅是一个框架,还是一个集成环境的架子。在Mybatis中,最核心的类就是SqlSessionFactory,而将Mybatis整合到Spring中,实际上就是让Spring替代我们管理SqlSessionFactory。整合之后&#xff0…

前面我们曾经说到,Spring不仅仅是一个框架,还是一个集成环境的架子。在Mybatis中,最核心的类就是SqlSessionFactory,而将Mybatis整合到Spring中,实际上就是让Spring替代我们管理SqlSessionFactory。整合之后,所有的Mapper对象都会变为Bean保存在Spring容器中。

整合步骤:

1. 导入依赖、配置资源过滤

    <dependencies>
        <!--引入web会将所有的spring相关依赖全部导入-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <!--引入织入相关的依赖-->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.4</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!--引入Spring测试环境-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>compile</scope>
        </dependency>
        <!--Mybatis 相关-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!--数据库连接驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.14</version>
        </dependency>
        <!--Mybatis、Spring整合包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.2</version>
        </dependency>
        <!--Spring默认的非连接池方式-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
    </dependencies>

    <!--配置资源过滤-->
    <build>
        <resources>
            <resource>
                <!--资源目录-->
                <directory>src/main/java</directory>
                <!--要求包含的文件类型-->
                <includes>
                    <include>*.xml</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

2.编写实体类

package com.zt.Eneity;

public class User {
    private Integer id;
    private String username;
    private String password;

    public User() {
    }

    public User(Integer id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

[注]:实体类与数据库内的记录相对应,因此每条记录对应的实体类对象都不一样,我们不应该把他们交给Spring容器管理。

3.描述Dao接口

package com.zt.Dao;

import com.zt.Eneity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserDao {

    Integer deleteUser(@Param("id") Integer id);
    Integer updateUser(User user);
    Integer addUser(User user);
    User findUserById(@Param("id") Integer id);
    List<User> getAllUsers();

}

4. 编写Mapper文件

<?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.zt.Dao.UserDao">
    <insert id="addUser" parameterType="com.zt.Eneity.User">
        insert into user(id,username,password) values (#{id},{username},#{password})
    </insert>
</mapper>

5. 在Spring配置文件中进行整合

<?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:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/beans
       https://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--加载数据库连接信息文件-->
    <context:property-placeholder location="jdbc.properties"/>

    <!--Mapper扫描器-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--配置要扫描的包-->
        <property name="basePackage" value="com.zt.Dao"/>
    </bean>

    <!--配置数据源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!--配置SqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--指定使用的连接池-->
        <property name="dataSource" ref="dataSource"/>
        <!--关联Mybatis-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath:com/zt/Dao/*.xml"/>
    </bean>

    <!--注册sqlSessionTemplate,关联SqlSessionFactory-->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <!--利用构造器注入-->
        <constructor-arg index="0" ref="sqlSessionFactory"/>
    </bean>

</beans>

6. 创建数据库表

use study_mybatis;
create table u_user(
    id int(8) primary key auto_increment,
    username varchar(20),
    password varchar(20)
)charset = utf8;

7. 测试

import com.zt.Dao.UserDao;
import com.zt.Eneity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-config.xml")
public class TestSpring {

    @Autowired
    private UserDao userDao;

    @Test
    public void springMybatisAddUser(){
        System.out.println(userDao.addUser(new User(null,"zzt","zjm")));
    }

    @Test
    public void springMybatisDeleteUserById(){
        System.out.println(userDao.deleteUserById(2));
    }

    @Test
    public void springMybatisGetAllUsers(){
        List<User> allUsers = userDao.getAllUsers();
        for (User allUser : allUsers) {
            System.out.println(allUser);
        }
    }

    @Test
    public void springMybatisQueryUserById(){
        System.out.println(userDao.queryUserById(1));
    }

    @Test
    public void springMybatisUpdateUserById(){
        System.out.println(userDao.updateUserById(new User(1, "zjm", "zzt")));
    }

}

 

 


本文链接: http://www.dtmao.cc/news_show_600247.shtml

附件下载

上一篇:mysql常用语句即函数

下一篇:xuperchain

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?