spring的几个重要类和接口(详解)

1、 datasource接口是javax.sql包下的接口,不是spring,是javax.sql下的

datasource接口有个重要的方法getConnection()方法

Connection getConnection(String username, String password)
throws SQLException;

那些spring支持的数据库连接池,都是实现了Datasource接口

比如下面是阿里的DruidDatasource数据库连接池源码,它就是实现了datasource的getConnection()方法

只要是实现了这个方法的类,就都可以当spring的datasource

@Override
  public DruidPooledConnection getConnection() throws SQLException {
    return getConnection(maxWait);
  }

  public DruidPooledConnection getConnection(long maxWaitMillis) throws SQLException {
    init();

    if (filters.size() > 0) {
      FilterChainImpl filterChain = new FilterChainImpl(this);
      return filterChain.dataSource_connect(this, maxWaitMillis);
    } else {
      return getConnectionDirect(maxWaitMillis);
    }
  }

2、 jdbcTemplate才是spring的利器,在springframework.jdbc包下

3、 所以spring如果想的话,也可以自己去连接数据库,自己去执行sql语句,不用mybatis或者hibernate。

就用spring自己的jdbcTemplate就行啊,只不过没有了orm匹配而已啊

4、 如果要用mybatis、hibernate它们去连接数据库的话,就要用它们的类似jdbcTemplate了啊,比如mybatis的sqlsessionTemplate。

5、 所以spring中,去操控数据库的话就分为三步骤:1.连数据库,datasource 2.找个利器去操控sql语言,jdbcTemplate或者sqlsessionfactory 3.将利器注入到spring ioc容器中

6、1.spring整合mybatis 的核心是 SqlSessionFactoryBean、MapperFactoryBean(单一接口)

7、1.spring整合mybatis 的核心是 SqlSessionFactoryBean、MapperFactoryBean(单一接口)

8、1.spring整合mybatis 的核心是 SqlSessionFactoryBean、MapperFactoryBean(单一接口)

以上这篇spring的几个重要类和接口(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • spring注解识别一个接口的多个实现类方法

    1.比如有一个接口如下: public interface Filter { public String doFilter(String param); } 2.有如下接口实现类: public class TimeFilter implements Filter { @Override public String doFilter(String param) { return param.replace("aa", "bb"); } }  3.使用方式:在接口实现

  • 通过spring用beanshell实现java接口示例

    说明 1.通过脚本语言让JAVA执行动态代码2.用Spring可以将脚本语言代理成Java接口的实现类3.Spring2.5.6中支持三种脚本语言ruby,Groovy,BeanShell4.示例中为spring与beanshell结合5.依赖spring2.5.6,bsh-2.0b4 复制代码 代码如下: import org.junit.Test;import org.springframework.scripting.bsh.BshScriptUtils; import bsh.EvalE

  • 详解Spring中实现接口动态的解决方法

    前言 本文主要给大家介绍的是关于Spring实现接口动态的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍吧. 关于这个问题是因为领导最近跟我提了一个需求,是有关于实现类Mybatis的@Select.@Insert注解的功能.其是基于interface层面,不存在任何的接口实现类.因而在实现的过程中,首先要解决的是如何动态实现接口的实例化.其次是如何将使接口根据注解实现相应的功能. 声明 解决方案是基于Mybatis源码,进行二次开发实现. 解决方法 我们先来看看Mybat

  • spring的几个重要类和接口(详解)

    1. datasource接口是javax.sql包下的接口,不是spring,是javax.sql下的 datasource接口有个重要的方法getConnection()方法 Connection getConnection(String username, String password) throws SQLException; 那些spring支持的数据库连接池,都是实现了Datasource接口 比如下面是阿里的DruidDatasource数据库连接池源码,它就是实现了dataso

  • spring BeanProcessor接口详解

    1. 简单认识BeanProcessor BeanProcessor的理解 BeanProcessor是spring中的一个重要接口,他有两个接口方法一个是postProcessBeforeInitialization前置初始化,另一个是postProcessAfterInitialization后置初始化.从名称上就可以大概清楚这个接口的作用:在一个业务流程的前后加入两个接口方法,当执行这个业务流程时,就会触发这两个接口方法的执行.简单的总结一下有两个要点: 在业务流程中,根据BeanProc

  • java接口语法以及与类的关系详解

    1.语法: public interface 接口名{} public class 类名 implements 接口名{} interface +接口名 implements: 实现 创建接口对象: Jumping p=new Cat(); 接口对象可以访问: Cat类中的成员变量和成员方法 但接口要写跟类一样的定义方法,接口对象才能引用类的方法 在interface里面的变量都是public static final 的.所以你可以这样写: public static final int i=

  • spring对JDBC和orm的支持实例详解

    简介 Spring提供的DAO(数据访问对象)支持主要的目的是便于以标准的方式使用不同的数据访问技术,如JDBC,Hibernate或者JDO等.它不仅可以让你方便地在这些持久化技术间切换, 而且让你在编码的时候不用考虑处理各种技术中特定的异常. 一致的异常层次 Spring提供了一种方便的方法,把特定于某种技术的异常,如SQLException, 转化为自己的异常,这种异常属于以 DataAccessException 为根的异常层次.这些异常封装了原始异常对象,这样就不会有丢失任何错误信息的

  • Spring的编程式事务和声明式事务详解

    入口(了解一些基本概念) Spring事务属性(事务的属性有哪些?) 我们都知道事务有开始,保存点,提交,回滚,隔离级别等属性.那么Spring对于事务属性定义有哪些呢?通过TransactionDefinition接口我们可以了解到: public interface TransactionDefinition{ int getIsolationLevel(); int getPropagationBehavior(); int getTimeout(); boolean isReadOnly

  • Spring AOP切面解决数据库读写分离实例详解

    Spring AOP切面解决数据库读写分离实例详解 为了减轻数据库的压力,一般会使用数据库主从(master/slave)的方式,但是这种方式会给应用程序带来一定的麻烦,比如说,应用程序如何做到把数据写到master库,而读取数据的时候,从slave库读取.如果应用程序判断失误,把数据写入到slave库,会给系统造成致命的打击. 解决读写分离的方案很多,常用的有SQL解析.动态设置数据源.SQL解析主要是通过分析sql语句是insert/select/update/delete中的哪一种,从而对

  • Spring boot进行参数校验的方法实例详解

    Spring boot开发web项目有时候我们需要对controller层传过来的参数进行一些基本的校验,比如非空.整数值的范围.字符串的长度.日期.邮箱等等.Spring支持JSR-303 Bean Validation API,可以方便的进行校验. 使用注解进行校验 先定义一个form的封装对象 class RequestForm { @Size(min = 1, max = 5) private String name; public String getName() { return n

  • Spring IOC和aop的原理及实例详解

    这篇文章主要介绍了Spring IOC和aop的原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.特点是面向接口编程,松耦合. 1:IOC(控制反转) 别名(DI:依赖注入) 首先来一段ioc的实现原来代码: public class ClassPathXmlApplicationContext implements BeanFactory { privat

  • Spring Data Jpa的四种查询方式详解

    这篇文章主要介绍了Spring Data Jpa的四种查询方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.调用接口的方式 1.基本介绍 通过调用接口里的方法查询,需要我们自定义的接口继承Spring Data Jpa规定的接口 public interface UserDao extends JpaRepository<User, Integer>, JpaSpecificationExecutor<User> 使用这

  • Spring IoC学习之ApplicationContext中refresh过程详解

    refresh() 该方法是 Spring Bean 加载的核心,它是 ClassPathXmlApplicationContext 的父类 AbstractApplicationContext 的一个方法 , 顾名思义,用于刷新整个Spring 上下文信息,定义了整个 Spring 上下文加载的流程. public void refresh() throws BeansException, IllegalStateException { synchronized(this.startupShu

随机推荐