Mybatis初學,mybatis 理解Spring整合mybatis

spring的spring-mybatis.xml

這裏我就不詳細描述了,晚上實在是太多了
https://blog.csdn.net/weixin_41910059/article/details/82659238
這個大佬寫的還是不錯,你可別刪啊,跪求!!!

spring對於ORM 的整合(以mybatis爲例)

  1. 配置spring所需的數據源(一個或者多個)
  2. 創建sessionFactoryBean (一般來說這個sessionFactroy 包含實體類和CRUD 所需要的功能文件
  3. 將功能代理注入到Spring
    spring 連接數據庫需要數據源,形式有很多種,一般比較常用而且推薦的方式是JNDI 數據源和數據連接池。這裏不多做論述。
    爲spring 數據訪問服務的本質是Session 接口,這個接口中有各種訪問數據庫的參數,而獲取 Session 對象的標準方式是通過session Factory ,而爲了符合spring 框架的低耦合性質,所以就是sessionFactoryBean的形式,這個factory需要的是映射的規則和方法的信息,用來創建訪問功能的代理
    SessionFactory 能都控制 Session的打開、關閉以及管理
    有了個功能代理,爲了減少程序的耦合性,這裏依然用接口的形式進行解耦合,這樣就出現了功能接口也就是我們平時使用的DAO接口(或者Map接口)
    註解方式:
@Bean(name="sqlSessionFactory")
    public SqlSessionFactoryBean sessionFactory(@Value("classpath:/db/mybatis-config.xml") Resource configLocation) throws PropertyVetoException, IOException {

        SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
//        設置數據源
        ssfb.setDataSource(dataSource());
//       設置mybatis 全局配置文件
        ssfb.setConfigLocation(configLocation);
//        掃描實體類包,使用別名
        ssfb.setTypeAliasesPackage("red.Minortone.pojo");
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        //Resource[] resources = resolver.getResources("classpath*:red.Minortone/mapper/*Mapper.xml");
        ssfb.setMapperLocations(resolver.getResources("classpath*:red.Minortone/mapper/*Mapper.xml"));
        /*System.out.println(resources.length);
        for(Resource resource:resources){
            System.out.println(resource.getURL());
        }*/
        return ssfb;
    }

    @Bean
    public MapperScannerConfigurer scannerConfigurer(){
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        msc.setSqlSessionFactoryBeanName("sqlSessionFactory");
        msc.setBasePackage("red.Minortone.dao");
        msc.setAnnotationClass(Repository.class);
        return  msc;
    }

mybatis的工作理解

DAO層功能接口 -》 MapperScannerConfigurer (mapper 掃描配置) -》 SqlSessionFactoryBean(sessionfactory) -》 SQLSession -》 Mybatis 功能實現

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章