一、SpringJDBC简短概述
Spring JDBC 提供了几种方法和数据库中相应的不同的类与接口。我将给出使用 JdbcTemplate 类框架的经典和最受欢迎的方法。这是管理所有数据库通信和异常处理的中央框架类。
Spring框架除了提供IOC与AOP核心功能外,同样提供了基于JDBC的数据访问功能,使得访问持久层数据更加方便。使用SpringJDBC环境,首先需要一套Spring整合JDBC的环境。
废话不多说,开始搭建自己的SpringJDBC项目吧!
注意:默认你是安装好MySQL和IDEA并配置好Maven环境的。在看此文章之前,你最好对IOC(控制反转/依赖注入)和AOP(面向切面编程)有一点点的了解。
二、Spring 整合JDBC环境
2.1 新建项目
打开IDEA ,创建一个Maven项目:File--->New--->Project---->Maven---->Create from archetype下拉找到quickstart,点击Next,输入项目名称MySpringJDBC,点击Finish,完成创建。关键步骤截图如下:
创建好项目之后在右下角会弹出Maven Project need to be imported,意思是说需要导入相关的Maven配置文件。一定要选择Enable-Auto-Import自动导入。
修改pom.xml文件
删除多余的插件:将pom.xml中pluginManagement插件内容删掉。修改后的配置文件如下所示:
要编写第一个SpringJDBC项目还需要在pom.xml中引入Spring-Context、Spring AOP Aspects、Spring TestContext Framework、Spring jdbc、Spring Transaction、MySQL Connector/J、C3P0连接池坐标。你可以去Maven Repository仓库(https://mvnrepository.com)去找对应的坐标依赖,也可以直接从下边拷贝(注意使用的版本)。
稍微啰嗦一点,题外知识可以略过哈。由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先从数据库建立一些链接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就可,用完后再放回去。其次,常用的数据库连接池是C3P0和DBCP,这两个二选一即可,本文使用的是C3P0连接池。DBCP(DataBase connection pool),数据库连接池。是apche上的一个java连接池项目,也是tomcat使用的连接池组件。单独使用dbcp需要两个包:commons-dbcp.jar,commons-dbcp.jar,dbcp没有自动回收空闲连接的功能。C3P0是一个开源的JDBC连接池,它实现了数据源,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Spring,Hibernate等。cep0有紫红回收的功能。
pom.xml相关依赖坐标
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- 引入Spring框架 -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.10</version>
</dependency>
<!-- Spring AOP Aspects Start -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.3.10</version>
</dependency>
<!-- AspectJ Weaver -->
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.6</version>
<scope>runtime</scope>
</dependency>
<!-- Spring AOP Aspects End -->
<!--Spring TestContext Framework » 5.3.10 Spring测试环境-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.10</version>
<scope>test</scope>
</dependency>
<!-- spring jdbc -->
<