栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring整合Mybatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring整合Mybatis

spring整合Mybatis需要导入多个jar,我就不一一说了,直接赋值pom.xml依赖就行了

 

        
        
        
            org.springframework
            spring-webmvc
            5.3.16
        

        
        
            org.mybatis
            mybatis
            3.5.9
        


        
        
            org.mybatis
            mybatis-spring
            2.0.7
        


        
            junit
            junit
            4.13
        

        
            org.projectlombok
            lombok
            1.18.22
        

        
        
        
            org.aspectj
            aspectjweaver
            1.9.8
        

        
            mysql
            mysql-connector-java
            8.0.28
        


        
        
            org.springframework
            spring-jdbc
            5.3.16
        

        
        
            org.aspectj
            aspectjweaver
            1.9.8
        

    

版本关联

 

准备工作完成之后,我们就可以开始整合了。


第一步:新建applicationContext.xml的(Spring配置文件)

  
    
            
            
            
            
    

tips:填写你们自己对应的用户名和密码,如果查询的结果是乱码,在jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8。注意xml配置文件中

&被转义了,& (分号也不能省略)才是普通的&,&表示和的意思。


第二步:新建Mybatis核心配置文件,在Spring中获取SqlSessionFactory对象,并且绑定mybatis核心配置文件,并将dataSource赋值给SqlSessionFactoryBean对象的dataSource属性。

    
            
            
            
            
    

第三步:给SqlSessionTemplate属性赋值,他就是SqlSession

    
    
        
    

 这里为什么要用下标0 ?

因为SqlSessionTemplate类的第一个属性就是SqlSessionFactory对象,所有可以使用index=0


第四步:测试

 

 或者,还有另外一种思想,当你拿到SqlSesesionTemplate类之后,新建一个UserMapperImple的类去实现UserMapper,并且注册到Spring中,这个类中内置一个SqlSessionTemplate属性,提供一个set方法,在Spring中通过set注入,将SqlSessionTemplate类注入给这个UserMapperImple类,然后通过此类去实现UserMapper中的所有方法,并且返回结果,我们只需要在测试类中调用即可,将此实现类看成是Service层的实现类。


使用实现类充当Service层的思想去做

第四步:新建UserMapperImple类,实现UserMapper接口

package com.guanzhu.mapper;

import com.guanzhu.POJO.User;
import org.junit.Test;
import org.mybatis.spring.SqlSessionTemplate;

import java.util.ArrayList;
import java.util.List;


public class UserMapperImple implements UserMapper {

    
    private SqlSessionTemplate sqlSessionTemplate;

    public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate){
        this.sqlSessionTemplate=sqlSessionTemplate;
    }

    public List getUsers() {
        UserMapper mapper = sqlSessionTemplate.getMapper(UserMapper.class);
        for (User user : mapper.getUsers()) {
            System.out.println(user);
        }
        return new ArrayList();
    }

    public int addUser(User user) {
        UserMapper mapper = sqlSessionTemplate.getMapper(UserMapper.class);
        int i = mapper.addUser(user);
        if(i>0){
            //大于0则提交事务
            sqlSessionTemplate.commit();
            return i;
        }else{
            //不满足条件则回滚事务
            sqlSessionTemplate.rollback();
            return i;
        }


    }
}

第五步:在Spring中注册

  
    
    
        
    

    
            
        
    

    

第六步:测试

    @Test
    public void test04(){ 
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserMapperImple umi = ac.getBean("userMapperImple", UserMapperImple.class);
        System.out.println("另外一种思想!");

        List users = umi.getUsers();
        for (User user : users) {
            System.out.println(user);
        }

    }

直接通过getBean ,通过id获取实现类就行了。通过调用实现类中已经写好的方法,来完成我们的需求,这样写,分工更加明确,当然,你要是不想多写一个实现类,第一种方式也是可以的。


最后,如果你遇到了

org.apache.ibatis.binding.BindingException: Type interface com.guanzhu.mapper.UserMapper is not known to the MapperRegistry.

问题原因,Spring核心配置文件中没有配置绑定Mybatis的核心配置文件,

 如果少了下面这行代码,mapper.xml文件就不会被注册,加上即可解决。

            

今天你进步了吗?

        人生没有白走的路,每走一步都算数。                

                                                                                                2022.3.13     星期天     中午     晴

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762890.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号