美文网首页技术栈
五、(一)配置数据源

五、(一)配置数据源

作者: 烟雨乱平生 | 来源:发表于2019-07-21 16:44 被阅读0次

Spring提供了在Spring上下文中配置数据源Bean的多种方式:

  • 通过JDBC驱动程序定义数据源
  • 通过JNDI查找数据源
  • 连接池的数据源

使用JNDI数据源

JNDI( Java Naming and Directory Interface ),是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个 API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括 LDAP、CORBA Common Object Service(COS)名字服务、RMI、NDS、DNS、Windows注册表等等。很多J2EE技术,包括EJB都依靠JNDI来组织和定位实体。可以把它理解为一种将对象和名字捆绑的技术,对象工厂负责生产出对象,这些对象都和唯一的名字绑在一起,外部资源可以通过名字获得某对象的引用。

基于JDBC驱动的数据源

在Spring中,通过JDBC驱动定义数据源是最简单的配置方式。Spring提供了两种数据源对象供选择:

  • DriverManagerDataSource:在每个链接请求时都会返回一个新建的链接。与DBCP的BasicDataSource不同,由DriverManagerDataSource提供的链接并没有进行池化管理。
  • SingleConnectionDataSource:在每个链接请求时都会返回同一个链接。尽管SingleConnectionDataSource不是严格意义上的连接池数据源,但是你可以将其视为一个只有一个链接的池。
基于java配置
@Configuration
public class DataSourceConfig {

    @Bean(name = "dataSource")
    public DataSource dataSource(){
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/");
        dataSource.setUsername("root");
        dataSource.setPassword("root123");
        return dataSource;
    }
}
基于XML配置
<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       ">
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/"></property>
        <property name="username" value="root"></property>
        <property name="password" value="root123"></property>
    </bean>

</beans>

使用数据源连接池

DBCP连接池
    @Bean(name = "dbcp")
    public DataSource dbcp(){
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/");
        dataSource.setUsername("root");
        dataSource.setPassword("root123");
        dataSource.setInitialSize(5);
        dataSource.setMaxIdle(10);
        return dataSource;
    }
C3P0连接池
    @Bean(name = "c3p0")
    public DataSource c3p0() throws PropertyVetoException {
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/");
        dataSource.setUser("root");
        dataSource.setPassword("root123");
        dataSource.setInitialPoolSize(5);
        dataSource.setMaxPoolSize(10);
        return dataSource;
    }
DRUID连接池
    @Bean(name = "druid")
    public DataSource druid() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/");
        dataSource.setUsername("root");
        dataSource.setPassword("root123");
        dataSource.setInitialSize(5);
        dataSource.setMaxActive(10);
        return dataSource;
    }

https://blog.csdn.net/qq_40395278/article/details/89531063

相关文章

网友评论

    本文标题:五、(一)配置数据源

    本文链接:https://www.haomeiwen.com/subject/woimlctx.html