资讯专栏INFORMATION COLUMN

Mybatis(基于SqlSessionTemplate的实现) + Spring 练习实战

xingpingz / 2194人阅读

摘要:学习篇上次使用映射接口实现,有不方便指出就是需要接口,且需要保证接口上不能存在其他的代理。这次通过基于模板类实现,总的来说就是建立类映射文件,中装配,调用类访问数据库。定义业务的实现类三调用测试的业务类获取市详情通过自动注解,注入。

mybatis学习篇:上次使用映射接口实现Mybatis,有不方便指出就是需要接口,且需要保证接口上不能存在其他的代理。这次通过SqlSessionTemplate基于模板类实现Mybatis,总的来说就是1.建立pojo类,sql映射文件,2.spring中装配,3.调用SqlSessionTemplate类访问数据库。这三个步骤:

一:sql映射文件
City.java

package com.suning.schema.mabatisInterface;  
  
import java.io.Serializable;  
  
public class City implements Serializable{  
      
    /** 
     */  
    private static final long serialVersionUID = 1L;  
    private String provinceCode;  
    private String cityCode;  
    private String cityName;  
      
    public String getProvinceCode() {  
        return provinceCode;  
    }  
    public void setProvinceCode(String provinceCode) {  
        this.provinceCode = provinceCode;  
    }  
    public String getCityCode() {  
        return cityCode;  
    }  
    public void setCityCode(String cityCode) {  
        this.cityCode = cityCode;  
    }  
    public String getCityName() {  
        return cityName;  
    }  
    public void setCityName(String cityName) {  
        this.cityName = cityName;  
    }  
}  

sqlMap_city.xml:

    
    
    
      
  

定义命名空间namespace为city,sql的ID为selectCity,其中resultType="city",可以写全路径,也可以通过配置文件简写。
二:Spring中装配
sample-mybatis.xml

  
  
            
      
          
      
      
      
        
            
          
          
      
      
      
         
             
        
      
      
      
  

定义一个核心的SqlSessionFactoryBean实例,mybatis的核心管理类,通过dataSource指定数据源,configLocation代表mybatis的配置文件,mapperLocations指sql文件地址。注入SqlSessionTemplate的实例,构造方法初始化sqlSessionFactory。定义业务的实现类mybatisService

三:调用sqlSessionTemplate
MybatisService.Java:

package com.suning.mybatis;  
  
import org.mybatis.spring.SqlSessionTemplate;  
import org.springframework.beans.factory.annotation.Autowired;  
  
//mabitis测试的业务类  
public class MybatisService {  
  
    @Autowired  
    private SqlSessionTemplate sqlSessionTemplate;  
      
    //获取市详情  
    public City getCityDetail(String cityCode){  
        return (City)sqlSessionTemplate.selectOne("city.selectCity", cityCode);  
    }  
} 

通过自动注解,注入sqlSessionTemplate。city对应sql中命名空间,selectCity对应sql的ID,如图:

测试类MybatisMain.java

package com.suning.mybatis;  
  
import org.springframework.beans.factory.BeanFactory;  
import org.springframework.context.support.ClassPathXmlApplicationContext;  
  
public class MybatisMain {  
  
    /** 
     * 功能描述: 
* 〈功能详细描述〉 * * @param args * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ public static void main(String[] args) { BeanFactory factory = new ClassPathXmlApplicationContext(new String[] { "classpath:conf/spring/sample-mybatis.xml", "classpath:conf/spring/sample-ds.xml" }); MybatisService test = (MybatisService) factory.getBean("mybatisService"); City cityDetail = (City) test.getCityDetail("560"); System.out.println("cityCode:560代表的城市为" + cityDetail.getCityName()); } }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66810.html

相关文章

  • 新手也能实现基于SpirngBoot2.0+ SpringBoot+Mybatis 多数据源配

    摘要:下面基于,带着大家看一下中如何配置多数据源。注意版本不一致导致的一些小问题。配置配置两个数据源数据库和数据库注意事项在配置数据源的过程中主要是写成和。五启动类此注解表示启动类这样基于的多数据源配置就已经完成了,两个数据库都可以被访问了。 在上一篇文章《优雅整合 SpringBoot+Mybatis ,可能是你见过最详细的一篇》中,带着大家整合了 SpringBoot 和 Mybatis...

    shiina 评论0 收藏0
  • MyBatis原理

    摘要:不是线程安全的,所以在使用的时候一定要保证他是局部变量。他对应的类图如下有几种常见的实现是默认的非线程安全的实现是中对的线程安全实现,在内部是使用的的形式来保证线程安全的是的核心。是线程安全的,可以被多个或映射器所共享使用。 MyBatis核心类 SqlSessionFactory 每一个MyBatis应用都是以一个SqlSessionFactory的实例为核心构建的。SqlSessi...

    Yu_Huang 评论0 收藏0
  • Spring中接口动态实现解决方案

    摘要:声明解决方案是基于源码,进行二次开发实现。其是基于层面,不存在任何的接口实现类。因而在实现的过程中,首先要解决的是如何动态实现接口的实例化。其次是如何将使接口根据注解实现相应的功能。 声明解决方案是基于Mybatis源码,进行二次开发实现。 问题领导最近跟我提了一个需求,是有关于实现类Mybatis的@Select、@Insert注解的功能。其是基于interface层面,不存在任何的...

    ispring 评论0 收藏0
  • Spring-Mybatis运行机制概括

    摘要:使用这个类库中的类将会加载必要的工厂类和类。最终它并不会依赖于或来构建应用程序代码。下面对各部分作用总结下。和无缝整合的机制和的认识在讲如何无缝整合进之前,我们先认识下和这两个接口的作用。附上上篇博文地址原理概括。 前言 本篇是继上篇MyBatis原理概括延伸的,所以如果有小伙伴还没看上篇博文的话,可以先去看下,也不会浪费大家太多的时间,因为本篇会结合到上篇叙述的相关内容。 好,切入正...

    qieangel2013 评论0 收藏0
  • mybatis-spring原理解析

    摘要:创建出的是对象,持有这个对象。根据接口名和方法名从对象的中检查并获取方法对应的语句解析成的对象,保存它的和命令类型。实现类拦截映射接口的自定义方法,让去处理方法对应的解析成的。 前言 Mybatis是目前主流的Java ORM框架之一。mybatis-spring包则是为了让Mybatis更好得整合进Spring的衍生产品。本文就从Mybatis和mybatis-spring源码着手,...

    why_rookie 评论0 收藏0

发表评论

0条评论

xingpingz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<