Mybatis的spring整合

Mybatis的spring整合,第1张

Mybatis的spring整合

目录

学习背景

Mybatis复习

首先是导入mybaits

配置mapper

调用sql

下面是测试类

学习整合spring-mybatis

Spring配置文件:

替换mybatis配置文件:

sqlsessionfactory配置:

!!!更正一下获取mybatis配置文件应该为configLocation

sqlSession的构造器注入:

使用sqlSession

封装mybatis的spring配置


学习背景

学习了spring和Mybatis之后我们来试着把他们整合到一块


Mybatis复习 首先是导入mybaits

新建一个maven文件,在pom.xml里导入


        
            
            org.mybatis
            mybatis
            3.5.2
        
        
        
            mysql
            mysql-connector-java
            5.1.47
        

总体pom代码



    4.0.0

    com.gao
    Spring-Mybatis
    pom
    1.0-SNAPSHOT
    
        baseMybatis
    

    
        
            
            org.mybatis
            mybatis
            3.5.2
        
        
        
            mysql
            mysql-connector-java
            5.1.47
        
        
        
            org.mybatis
            mybatis-spring
            2.0.6
        
        
        
            org.springframework
            spring-webmvc
            5.3.15
        
        
        
            junit
            junit
            4.12
            test
        
    
    
        8
        8
    
    
        
        
            
                src/main/java
                
                    **/*.xml
                
            
        
        


    

接下来我们去配置mybatis的配置文件mybatis-config.xml

 我喜欢这样配置maven项目,分享一下

一个大父类,多个子类可以继承

mybatis-config.xml就放置在resources下就好

mybatis-config.xml代码如下






    
    
        
            
            
                
                
                
                
            
        
    
    
        
        


    

 现在新手,每次都得从网上找模块来写入(求助简单快捷有效的方法)


配置mapper

配置完mybatis-config.xml我们来配置mapper

首先在mapper层创建俩名字一样的文件 

(尽量一样,这样在mybatis注册mapper不会出这么多问题)

之前在写登入注册的时候写了个user和usermapper方法,我直接copy了

User代码:

package com.gao.pojo;

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

    public int getId() {
        return id;
    }

    public void setId(int 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 + ''' +
                '}';
    }
}

还有mapper代码

Java

为了省事我们就直接写一个简单的查询

package com.gao.mapper;

import com.gao.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserMapper {
    @Select("select * from jd_user.user_login")
    List select();
}

xml代码







User代码

package com.gao.pojo;

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

    public int getId() {
        return id;
    }

    public void setId(int 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 + ''' +
                '}';
    }
}
调用sql

配置完上面再配置一个sqlsessionfactory的工厂工具类

代码如下

package com.gao.utils;



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 java.io.IOException;
import java.io.InputStream;

    public class SqlSessionFactoryUtil {
        private static org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory;
        static {
            try {
                String resource = "Mybatis-Config.xml";
                InputStream inputStream = Resources.getResourceAsStream(resource);
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        public static SqlSession getSqlSession(){
            return sqlSessionFactory.openSession();
        }
    }


至此,我们的配置以及工厂类都写完了

下面是测试类

在test里创个测试类

代码:

package com.gzc;

import com.gao.mapper.UserMapper;
import com.gao.pojo.User;
import com.gao.utils.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

public class test {

    @Test
    public void test(){
        SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List list = userMapper.select();
        for (User user : list) {
            System.out.println("user = " + user);
        }
    }
}

简单的测试是否连接数据库成功

 ok完事

我们的mybatis复习就到这

具体的包长这样

 

学习整合spring-mybatis

好复习完spring-mybatis我们来学习spring-mybatis的整合

首先我们先在Spring-Mybatis文件夹下继续创一个子类

把上面的一些东西copy过来

具体的mapper层和Pojo层等:

再在pom里加入

       
     
            org.springframework
            spring-jdbc
            5.3.15
        
     
    
            org.springframework
            spring-webmvc
            5.3.15
        

 然后在资源包中引入一个Spring.xml的配置文件

Spring配置文件: 替换mybatis配置文件:

 我们在spring的bean里导入一个spring的数据源datasource



    

在bean的里面输入

name里面包含的是不是很熟悉

没错就是我们mybatis-config的property内容

 我们现在全都在spring里写,让spring帮我们配置



    
    
    
    

我们直接copy过来

sqlsessionfactory配置:

然后配置spring里面sqlsessionfactory的bean文件

如图

 

 这样我们的factory工具类也不需要了

!!!更正一下获取mybatis配置文件应该为configLocation
 
sqlSession的构造器注入:

 如图使用

org.mybatis.spring.SqlSessionTemplate这个类来获取

会报错提示我们的为存在构造函数

我们点进去查看他的类函数

 发现有一个需要factory的有参构造,那我们就可以直接利用上面我们写的factory方法给予相应值

 这样我们就获取了sqlsession,有了session我们就算正式连接数据库了

那么我们现在可以尝试一下

使用sqlSession

既然sqlSession已经变成对象,那么我们需要一个类方法实现他

package com.gao.mapper;

import com.gao.pojo.User;

import java.util.List;

public class UserMapperImpl implements UserMapper{

    @Override
    public List select() {
        return null;
    }
}

创建个继承Mapper的类来实现

 通过setter来实现spring的set注入

我们就能获取原来session里面的所有方法:

 接下来我们就可以和之前一样用getmapper调用mapper了

再将这个类调入spring中

 这样就可以实现数据库的连接和使用了

封装mybatis的spring配置

 




    
        
        
        
        
    
    
    
        
        
        
        
        
        
    
    
    
        
        
        
    

以上就是所有的mybatis配置文件

我们直接通过代码模板保存到idea里面

 下次就可以使用了

未完待续。。。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5715621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存