【Spring】【MyBatis】Spring整合MyBatis01


  • 这是一个Spring整合MyBatis的第一次尝试,对于文件的命名和存放位置,也许有些不太合理,请见谅
  • 需要数据库的请查阅【Mybatis】学习笔记01:连接数据库,实现增删改 - 萌狼蓝天
  • 本文档使用的SQL语句是MyBatis动态SQL语句(Choose)
  • 参考文档

项目创建

配置pom.xml



    
        mysql
        mysql-connector-java
        8.0.28
    

    
        org.mybatis
        mybatis
        3.5.9
    

    
        org.springframework
        spring-webmvc
        5.3.18
    

    
        org.springframework
        spring-jdbc
        5.3.17
    

    
        org.mybatis
        mybatis-spring
        2.0.7
    

    
        org.aspectj
        aspectjweaver
        1.9.9
    

    
        log4j
        log4j
        1.2.12
    

    
        junit
        junit
        4.13.2
    
    
    
        com.github.pagehelper
        pagehelper
        5.3.0
    
    
    
        com.alibaba
        fastjson
        2.0.1
    

连接数据库

快速创建实例化对象

选择目录

创建完毕后需要去修改它们的包名

配置

目录

database.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/edu_smbms
jdbc.username=edu_smbms
jdbc.password=**********

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>


    

        

        
    
    

        
    
    
        
    

Spring-dao.xml

<?xml version="1.0" encoding="UTF-8"?>

    
    
    
        
        
        
        
    
    
    
        
        
        
        

    
    
    
        
        
        
    
    
    
        
        
    


log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>


    
        
        
            
        
    
    
        
    
    
        
    
    
        
        
    

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

    
    
    

    
        
    

接口、映射、实现类

ProviderMapper.java

package cc.mllt.mapper;

import cc.mllt.pojo.SmbmsProvider;
import org.apache.ibatis.annotations.Param;


import java.util.List;

public interface ProviderMapper {
    /**
     * 查询供应商信息
     * @param way 查询方式。1:根据供应商公司名称模糊查询 2:根据供应商负责人名字模糊查询 3:根据电话模糊查询
     * @param npc 查询的关键字
     * @return Provider
     */
    public List getProviderByNCP(@Param("way") int way, @Param("npc") String npc);
}

ProviderMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>



    

ProviderImpl.java

package cc.mllt.impl;

import cc.mllt.mapper.ProviderMapper;
import cc.mllt.pojo.SmbmsProvider;
import org.mybatis.spring.SqlSessionTemplate;

import java.util.List;
//实现类
public class ProviderImpl implements ProviderMapper {
    private SqlSessionTemplate sqlSessionTemplate;
    public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate){
        this.sqlSessionTemplate=sqlSessionTemplate;
    }
    @Override
    public List getProviderByNCP(int way, String npc) {
        ProviderMapper providerMapper = sqlSessionTemplate.getMapper(ProviderMapper.class);
        return providerMapper.getProviderByNCP(way,npc);
    }
}

测试

@Test
    public void getProviderByNCPTest(){
        ClassPathXmlApplicationContext context= new ClassPathXmlApplicationContext("applicationContext.xml");
        ProviderMapper providerMapper = context.getBean("providerMapperBean",ProviderMapper.class);
        List result = providerMapper.getProviderByNCP(2,"王");
        for(SmbmsProvider smbmsProvider:result){
            System.out.println(smbmsProvider);
        }
    }
C:\Users\xrilang\.jdks\openjdk-17.0.2\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:D:\SoftwareInstall\JetBrains\Toolbox\apps\IDEA-U\ch-1\221.5080.210\lib\idea_rt.jar=8953:D:\SoftwareInstall\JetBrains\Toolbox\apps\IDEA-U\ch-1\221.5080.210\bin -Dfile.encoding=UTF-8 -classpath D:\SoftwareInstall\JetBrains\Toolbox\apps\IDEA-U\ch-1\221.5080.210\lib\idea_rt.jar;D:\SoftwareInstall\JetBrains\Toolbox\apps\IDEA-U\ch-1\221.5080.210\plugins\junit\lib\junit5-rt.jar;D:\SoftwareInstall\JetBrains\Toolbox\apps\IDEA-U\ch-1\221.5080.210\plugins\junit\lib\junit-rt.jar;N:\JavaEE\MyStudyCode\pra-mybatis-smbms\target\test-classes;N:\JavaEE\MyStudyCode\pra-mybatis-smbms\target\classes;A:\100_env\framework\java\MyMavenJarLib\mysql\mysql-connector-java\8.0.28\mysql-connector-java-8.0.28.jar;A:\100_env\framework\java\MyMavenJarLib\com\google\protobuf\protobuf-java\3.11.4\protobuf-java-3.11.4.jar;A:\100_env\framework\java\MyMavenJarLib\org\mybatis\mybatis\3.5.9\mybatis-3.5.9.jar;A:\100_env\framework\java\MyMavenJarLib\org\springframework\spring-webmvc\5.3.18\spring-webmvc-5.3.18.jar;A:\100_env\framework\java\MyMavenJarLib\org\springframework\spring-aop\5.3.18\spring-aop-5.3.18.jar;A:\100_env\framework\java\MyMavenJarLib\org\springframework\spring-beans\5.3.18\spring-beans-5.3.18.jar;A:\100_env\framework\java\MyMavenJarLib\org\springframework\spring-context\5.3.18\spring-context-5.3.18.jar;A:\100_env\framework\java\MyMavenJarLib\org\springframework\spring-core\5.3.18\spring-core-5.3.18.jar;A:\100_env\framework\java\MyMavenJarLib\org\springframework\spring-jcl\5.3.18\spring-jcl-5.3.18.jar;A:\100_env\framework\java\MyMavenJarLib\org\springframework\spring-expression\5.3.18\spring-expression-5.3.18.jar;A:\100_env\framework\java\MyMavenJarLib\org\springframework\spring-web\5.3.18\spring-web-5.3.18.jar;A:\100_env\framework\java\MyMavenJarLib\org\springframework\spring-jdbc\5.3.17\spring-jdbc-5.3.17.jar;A:\100_env\framework\java\MyMavenJarLib\org\springframework\spring-tx\5.3.17\spring-tx-5.3.17.jar;A:\100_env\framework\java\MyMavenJarLib\org\mybatis\mybatis-spring\2.0.7\mybatis-spring-2.0.7.jar;A:\100_env\framework\java\MyMavenJarLib\org\aspectj\aspectjweaver\1.9.9\aspectjweaver-1.9.9.jar;A:\100_env\framework\java\MyMavenJarLib\log4j\log4j\1.2.12\log4j-1.2.12.jar;A:\100_env\framework\java\MyMavenJarLib\junit\junit\4.13.2\junit-4.13.2.jar;A:\100_env\framework\java\MyMavenJarLib\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;A:\100_env\framework\java\MyMavenJarLib\com\github\pagehelper\pagehelper\5.3.0\pagehelper-5.3.0.jar;A:\100_env\framework\java\MyMavenJarLib\com\github\jsqlparser\jsqlparser\4.2\jsqlparser-4.2.jar;A:\100_env\framework\java\MyMavenJarLib\com\alibaba\fastjson\2.0.1\fastjson-2.0.1.jar;A:\100_env\framework\java\MyMavenJarLib\com\alibaba\fastjson2\fastjson2-extension\2.0.1\fastjson2-extension-2.0.1.jar;A:\100_env\framework\java\MyMavenJarLib\com\alibaba\fastjson2\fastjson2\2.0.1\fastjson2-2.0.1.jar com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 MappperProviderTest,getProviderByNCPTest
DEBUG 04-26 19:01:09,419 Creating a new SqlSession (Logger.java:49) 
DEBUG 04-26 19:01:09,423 SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2e2ff723] was not registered for synchronization because synchronization is not active (Logger.java:49) 
DEBUG 04-26 19:01:10,882 JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@55b5e331] will not be managed by Spring (Logger.java:49) 
DEBUG 04-26 19:01:10,905 ==>  Preparing: select * from smbms_provider where proContact like concat('%',?,'%') (BaseJdbcLogger.java:137) 
DEBUG 04-26 19:01:10,937 ==> Parameters: 王(String) (BaseJdbcLogger.java:137) 
DEBUG 04-26 19:01:11,054 <==      Total: 3 (BaseJdbcLogger.java:137) 
DEBUG 04-26 19:01:11,055 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2e2ff723] (Logger.java:49) 
SmbmsProvider{id=2, proCode='HB_GYS001', proName='石家庄帅益食品贸易有限公司', proDesc='长期合作伙伴,主营产品:饮料、水饮料、植物蛋白饮料、休闲食品、果汁饮料、功能饮料等', proContact='王军', proPhone='13309094212', proAddress='河北省石家庄新华区', proFax='0311-67738876', createdBy=1, creationDate=2016-04-13 04:20:40.0, modifyDate=null, modifyBy=0}
SmbmsProvider{id=7, proCode='BJ_GYS003', proName='北京国粮食用油有限公司', proDesc='初次合作伙伴,主营产品:花生油、大豆油、小磨油等', proContact='王驰', proPhone='13344441135', proAddress='北京大兴青云店开发区', proFax='010-588134111', createdBy=1, creationDate=2016-04-13 00:00:00.0, modifyDate=null, modifyBy=0}
SmbmsProvider{id=15, proCode='ZJ_GYS002', proName='乐摆日用品厂', proDesc='长期合作伙伴,主营产品:各种中、高档塑料杯,塑料乐扣水杯(密封杯)、保鲜杯(保鲜盒)、广告杯、礼品杯', proContact='王世杰', proPhone='13212331567', proAddress='浙江省金华市义乌市义东路', proFax='0579-34452321', createdBy=1, creationDate=2016-08-22 10:01:30.0, modifyDate=null, modifyBy=0}

进程已结束,退出代码0