个人实践总结Myabtis与Spring优化项目【模式二】【超全面】

原创
小哥 3年前 (2022-11-14) 阅读数 8 #大杂烩

写在前面:本篇为小白博主自学总结内容,比较适合初级者。

方式二 是新版本的内容,对前面方式一进行了进一步的简化!两者可以对比学习一下。建议先学习方式一再来学习方式二,这样更好理解。

个人学习总结 Myabtis与Spring整合项目 【方式二】

一、前期准备

创建maven项目,搭建环境 这里不做过多的赘述。

1.1 导入包

在Mybatis和Spring整合的项目之前,必须先导入相关的包,因为创建的是maven项目,所以直接在 pom.xml 文件中导入相关依赖即可,具体需要导入的依赖如下:

1、导入junit依赖

  
            
            junit
            junit
            4.12
        

2、导入mysql依赖

   
            mysql
            mysql-connector-java
            8.0.26
        

3、导入mybatis依赖

 
            org.mybatis
            mybatis
            3.5.9
        

4、导入Spring依赖

 
            org.springframework
            spring-webmvc
            5.3.18
        

5、Mybatis和Spring整合,需要Spring来操作数据库,所以导入Spring-jdbc依赖

 
        
            org.springframework
            spring-jdbc
            5.3.19
        

6、导入myabtis和spring整合的依赖


        
        
            org.mybatis
            mybatis-spring
            2.0.7
        

注意:
mybatis和spring整合的依赖版本、spring的版本、mybatis的版本之间需要互相对应,具体可参考下图

1.2 创建配置文件及文件夹

1、 创建配置文件

在resources文件夹下,分别创建spring的配置文件 spring-dao.xml 、mybatis的配置文件 mybsatis-config.xml 和总的配置文件 applicationContext.xml 【名字可以随便起】


2、创建文件夹

分别创建com.li.pojo层 来存放实体类、com.li.mapper层 来存放接口及接口的配置文件【名字可以自己起】

二、项目编写

2.1 创建数据库

创建数据库并插入数据

CREATE DATABASE mybatis;

USE mybatis;

CREATE TABLE user(
id INT(20)NOT NULL, 
nameVARCHAR(30)DEFAULT NULL,
pwdVARCHAR(30) DEFAULT NULL,
PRIMARY KEY(id)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO user(id,name,pwd)
VALUES(1,狂神,123456),
(2,张三,123456),
(3,李四,123456)

2.1 编写代码

1、编写实体类

在创建好的com.li.pojo层创建实体类 User

package com.li.pojo;

public class User {
    private int id;
    private String name;
    private String pwd;

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public User(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name=" + name +  +
                ", pwd=" + pwd +  +
                };
    }
}

2、 编写接口

在创建好的com.li.mapper层编写接口 UserMapper

package com.li.mapper;

import com.li.pojo.User;

import java.util.List;

public interface UserMapper {

   List userSelect();

}

3、 编写接口实现类配置文件 UserMapper.xml







    
    

4、编写 mybatis-config.xml 配置文件内容






    
    

        
        

    

    
    
        
        
    

5、编写接口UserMapper的实现类 UserMapperImpl1

查看Spring文档,可以看到,新版本的这里进行了一些简化,直接继承 SqlSessionDaoSupport 进而不用创建sqlSession,就可以直接使用,

package com.li.mapper;

import com.li.pojo.User;
import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.support.SqlSessionDaoSupport;

import java.util.List;

public class UserMapperImpl1 extends SqlSessionDaoSupport implements UserMapper {

    @Override
    public List userSelect() {
        SqlSession sqlSession = getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        return mapper.userSelect();
    }
}

6、编写 spring-dao.xml 配置文件内容

新版本直接继承 SqlSessionDaoSupport ,所以这里也不用绑定用来生成sqlSession的 SqlSessionTemplate




    
    
    
        
        
        
        
    

    
    
    
        

        
        
        

    

    
    
        
    

9、编写 applicationContext.xml 配置文件内容




    
     

8、测试

import com.li.mapper.UserMapper;
import com.li.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MyTest {

    @Test
    public void test() throws IOException {
        ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
//这里的userMapper就是在Spring-dao.xml配置文件中 把类注入进去时候bean的id名
        UserMapper userMapper = classPathXmlApplicationContext.getBean("userMapper1", UserMapper.class);

        for (User user : userMapper.userSelect()) {
            System.out.println(user);

        }

    }

}

三、项目源码

链接:https://pan.baidu.com/s/1vF9NeWTIR7mrzKYaE2ndAw
提取码:9802

四、总结

Mbtstis+Spring的整合 方式一 移步:
https://blog.csdn.net/junR_980218/article/details/124265050

方式一和方式二 对比进行学习 更好。

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除