Spring配置数据源流程与作用详解

Spring配置数据源流程与作用详解

什么是数据源

在编写Java Web应用时,我们经常需要连接数据库。而Spring提供了JdbcTemplate等API帮助我们对数据库进行操作。但是在使用这些API之前我们需要先获得一个数据源(DataSource)对象。数据源是一个能够建立数据库连接的工厂,它将数据库的连接细节封装了起来,同时提供了有效,可重复的数据库连接。

Spring配置数据源

Spring可以和大部分的数据库连接池进行集成。这些数据库连接池包括:
* Apache Commons DBCP
* BoneCP
* C3P0
* HikariCP
* Tomcat JDBC Pool
本文以集成Apache Commons DBCP为例描述Spring如何配置数据源。

配置依赖

首先需要将Apache Commons DBCP连接池库加入项目依赖中。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-dbcp2</artifactId>
    <version>2.7.2</version>
</dependency>

配置数据源

在Spring的配置文件中,使用org.apache.commons.dbcp2.BasicDataSource类创建数据源的Bean,其中需要配置数据库连接池参数,例如连接URL,用户名,密码等等。以下是一个示例配置:

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/db_test"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
    <!--初始化连接数-->
    <property name="initialSize" value="5"/>
    <!--连接池的最大值-->
    <property name="maxTotal" value="50"/>
</bean>

其中:
* driverClassName:驱动类的完整名称,例如MySQL驱动为com.mysql.jdbc.Driver
* url:数据库连接URL。
* username:连接数据库的用户名。
* password:连接数据库的密码。
* initialSize:连接池的初始化大小。
* maxTotal:连接池的最大数量。

使用数据源

配置数据源后,在应用程序中就可以使用它了。我们可以直接将数据源对象注入到其他Bean中,例如一个JdbcTemplate对象,示例如下:

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <!--注入数据源对象-->
    <property name="dataSource" ref="dataSource" />
</bean>

在Java代码中,使用JdbcTemplate对象来进行数据库操作:

@Autowired
private JdbcTemplate jdbcTemplate;

public void insertUser(User user) {
    jdbcTemplate.update("INSERT INTO user VALUES(?, ?, ?)", user.getId(), user.getName(), user.getAge());
}

示例1:使用Spring连接MySQL数据库

下面给出一个使用Spring连接MySQL数据库的示例。

配置依赖

首先需要将MySQL驱动加入项目依赖中。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>

配置数据源

在Spring的配置文件中,使用org.apache.commons.dbcp2.BasicDataSource类创建数据源的Bean,其中需要配置MySQL连接的URL、用户名和密码。以下是一个示例配置:

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql://localhost:3306/test"></property>
    <property name="username" value="root"></property>
    <property name="password" value="password"></property>
</bean>

使用数据源

配置数据源后,在应用程序中就可以使用它了。我们可以直接将数据源对象注入到其他Bean中,例如一个JdbcTemplate对象,示例如下:

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource" />
</bean>

在Java代码中,使用JdbcTemplate对象来进行数据库操作:

@Autowired
private JdbcTemplate jdbcTemplate;

public List<User> listUsers() {
    List<User> userList = jdbcTemplate.query("SELECT * FROM user", 
    new BeanPropertyRowMapper<User>(User.class));
    return userList;
}

在示例中,使用JdbcTemplate查询了MySQL数据库中的用户表,并将查询结果映射成Java对象列表返回。

示例2:使用Spring连接Oracle数据库

下面给出一个使用Spring连接Oracle数据库的示例。

配置依赖

首先需要将Oracle驱动加入项目依赖中。

<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3.0.0</version>
</dependency>

配置数据源

与MySQL类似,也需要在Spring的配置文件中使用org.apache.commons.dbcp2.BasicDataSource类创建Oracle连接的数据源对象,以下是一份示例配置:

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
    <property name="username" value="scott"></property>
    <property name="password" value="tiger"></property>
</bean>

使用数据源

在Java代码中,可以使用JdbcTemplate等API对Oracle数据库进行操作,示例如下:

@Autowired
private JdbcTemplate jdbcTemplate;

public List<User> listUsers() {
    List<User> userList = jdbcTemplate.query("SELECT * FROM user", 
    new BeanPropertyRowMapper<User>(User.class));
    return userList;
}

在示例中,使用JdbcTemplate查询了Oracle数据库中的用户表,并将查询结果映射成Java对象列表返回。

结论

本文介绍了Spring如何配置数据源,以及使用这些数据源进行MySQL和Oracle数据库操作的具体步骤。对于连接不同数据库的开发人员,可以按照本文提供的示例进行配置和操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring配置数据源流程与作用详解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java Apache Commons报错“InstantiationException”的原因与解决方法

    当使用Java的Struts框架时,可能会遇到“ActionServletMappingException”错误。这个错误通常由以下原因之一起: ActionServlet配置错误:如果ActionServlet配置错误,则可能会出现此错误。在这种情况下,需要检查ActionServlet配置以解决此问题。 ActionServlet无效:如果ActionS…

    Java 2023年5月5日
    00
  • JSP基于JDBC的数据库连接类实例

    下面我将给出关于“JSP基于JDBC的数据库连接类实例”的完整攻略,希望可以对您有所帮助。 JSP基于JDBC的数据库连接类实例 JDBC(Java Database Connectivity)是Java语言中访问数据库的标准规范,通过JDBC可以实现与多种数据库的连接。在JSP中使用JDBC连接数据库是非常常见的一种操作。接下来将为您提供一些相关的实例: …

    Java 2023年5月20日
    00
  • Java中过滤器 (Filter) 和 拦截器 (Interceptor)的使用

    Java中的过滤器(Filter)和拦截器(Interceptor)是Web开发中常用的两个概念,它们能够有效地对请求进行处理和控制。在本文中,我们将针对Java中过滤器和拦截器的使用进行详细讲解,包括二者的区别、使用方法、作用范围等内容,并举例说明。 一、过滤器(Filter)和拦截器(Interceptor)的区别 过滤器(Filter)和拦截器(Int…

    Java 2023年5月26日
    00
  • 复选框和Struts2后台交互代码详解

    我们来详细讲解“复选框和Struts2后台交互代码详解”的完整攻略。 1. 复选框怎么用? 1.1 HTML中的复选框 在HTML中,复选框是通过input标签来定义的,type属性的值为checkbox。 <input type="checkbox" name="rememberMe" value="…

    Java 2023年5月20日
    00
  • idea连接sql sever2019图文教程(超详细)

    下面我将给出“idea连接sql sever2019图文教程(超详细)”的完整攻略,包括示例说明。 准备工作 下载安装JDBC驱动; 确认SQL Server已启动并运行。 开始连接数据库 新建一个Java项目; 将下载的JDBC Driver添加到项目库中; 在项目中创建一个Java类文件,例如“SqlConnectDemo.java”; 为访问SQL S…

    Java 2023年6月16日
    00
  • 如何使用java修改文件所有者及其权限

    下面是使用Java修改文件所有者及其权限的攻略: 1. 获取文件或目录对象 首先需要获取需要修改权限和所有者的文件或目录对象,可以使用Java的File类进行操作。例如,以下代码获取名为“test.txt”的文件对象: File file = new File("test.txt"); 2. 修改文件或目录的所有者 文件或目录的所有者可以…

    Java 2023年5月19日
    00
  • elastic-job源码(1)- job自动装配

    版本:3.1.0-SNAPSHOT git地址:https://github.com/apache/shardingsphere-elasticjob   Maven 坐标 <dependency> <groupId>org.apache.shardingsphere.elasticjob</groupId> <ar…

    Java 2023年4月27日
    00
  • JAVA深入探究之Method的Invoke方法

    JAVA深入探究之Method的Invoke方法 在Java中,使用Method类可以描述一个方法。Method类提供了invoke()方法,可以反射调用一个方法。本文将讲解Method的invoke方法的使用方法及示例。 什么是Method的Invoke方法 Method的Invoke方法是Java中反射调用方法的主要方法。它可以调用任意一个对象的任意一个…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部