栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring JDBC—— 从零开始编写第一个Spring JDBC项目

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring JDBC—— 从零开始编写第一个Spring JDBC项目

一、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相关依赖坐标
  
    
      junit
      junit
      4.12
      test
    

    
    
    
      org.springframework
      spring-context
      5.3.10
    
    
    
    
      org.springframework
      spring-aop
      5.3.10
    
    
    
    
      org.aspectj
      aspectjweaver
      1.9.6
      runtime
    
    

    
    
    
      org.springframework
      spring-test
      5.3.10
      test
    
    
    
    
      org.springframework
      spring-jdbc
      5.3.10
    
    
    
    
      org.springframework
      spring-tx
      5.3.10
    
    
    
    
      mysql
      mysql-connector-java
      8.0.26
    
    
    
    
      com.mchange
      c3p0
      0.9.5.5
    

  

我新建好的目录文件是下面图中样的,在src-->main包下没有resources资源目录,所以需要手动添加resources目录(IDEA有时候会给你自动创建好,有时候不会,需要我们手动创建,这并不影响项目的正常运行),在main包下新建一个resources资源目录:右键main-->New-->Directory键入resources,点击下边的提示的资源文件夹图标,这样就手动创建好了,如果没有提示的信息,则可以直接创建文件夹,然后右键新建的目录-->Mark Directory as-->Sources Root就可以了。

2.2 添加jdbc配置文件

在resources目录下新建jdbc.properties,并设置对应的配置信息。

配置文件:jdbc.properties

#驱动名
jdbc.driver=com.mysql.cj.jdbc.Driver
#数据库连接
jdbc.url=jdbc:mysql://localhost:3306/(数据库名称)?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
#数据库用户名称
jdbc.user=(数据库账号)
#数据库用户密码
jdbc.password=(数据库密码)
2.3修改spring配置文件

 在resources目录下新建spring.xml配置文件,并设置对应的配置信息。

    
    

spring.xml



    
    
    
    
 2.4配置数据源
 
    
        
        
        
        
        
    
2.5模板类配置
 
    
        
    

 这里为了体现步骤把spring.xml的配置拆分展示了,你需要将2.4和2.5中的代码手动拷贝到spring.xml中标签内。

三、创建数据库

我使用的MySQL版本是5.x。开启MySQL服务,打开MySQL自带的GUI软件Workbench,输入账号密码连接数据库服务,新建一个spring_jdbc数据库,在此数据库中新建一个tb_account数据表,添加如下字段信息

新建好后,右键tb_account数据表-->Select Rows -Limit 1000,在弹出的命令行窗口中,输入SELECT * FROM spring_jdbc.tb_account;并执行,会看到下图信息。这是我们点击图中标识出来的Edit并对每个属性填充内容,并点击Apply应用数据。

 

 新建第一条数据,如下图所示:

 新建第二条数据,如下图所示:

 这样我们就把数据库部分简单的创建好了,通过Workbench创建数据表非常简单,这里不再赘述,不会的童鞋请自行百度哈,这里给出一个连接MySQL Workbench使用教程 (biancheng.net)。数据库创建好后,要记得把jdbc.properties配置文件中的配置信息改掉哦。下面是我的一个配置信息,需要改动的地方都标识好了。

 四、使用JUint测试

上面的步骤很繁琐,小伙伴坚持一下哦,这是最后一块,马上就要完成了。废话不多说了,来一场进场刺激的开发吧!

在test/java/org.example目录中新建一个test包,并在此包下新建一个SpringJdbcTest类。步骤如下

右键org.example-->New-->Package键入test。右键新建好的test包-->New--->JavaClass键入SpringJdbcTest01,这样我们的目录结构及相应的文件就创建好了。如下图所示。

  好,下面通过juint测试jdbcTemplate bean是否获取到,在SpringJdbcTest01中写入如下代码

public class SpringJdbcTest01 {
    @Test
    public void testJdbc(){
//        获取Spring的上下文环境
        BeanFactory beanFactory = new ClassPathXmlApplicationContext("spring.xml");
//        得到模板类 JbcdTemplate对象  (在spring.xml中,使用bean对象引入了IOC容器)
        JdbcTemplate jdbcTemplate = (JdbcTemplate)beanFactory.getBean("jdbcTemplate");
//        crud  操作
//        定义Sql语句
        String sql = "select count(1) from tb_account";
//        执行查询操作(无参数)
        Integer total = jdbcTemplate.queryForObject(sql,Integer.class);
        System.out.println("总记录数:"+total);
    }
    @Test
    public void testJdbc02(){
 //        获取Spring的上下文环境
        BeanFactory beanFactory = new ClassPathXmlApplicationContext("spring.xml");
//        得到模板类 JbcdTemplate对象  (在spring.xml中,使用bean对象引入了IOC容器)
        JdbcTemplate jdbcTemplate = (JdbcTemplate)beanFactory.getBean("jdbcTemplate");
//        crud  操作
//        定义Sql语句
        String sql = "select count(1) from tb_account where user_id = ?";
//        执行查询操作(有参数)
        Integer total = jdbcTemplate.queryForObject(sql,Integer.class,2);
        System.out.println("总记录数:"+total);
    }
}

 运行结果如下图所示:

关于更多关于Spring JDBC的使用,可以参考Spring官网给出的教程,这里给出链接Data Access (spring.io)

五、源码

src/test/java/org/example/test/SpringJdbcTest01.java

package org.example.test;

import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;

public class SpringJdbcTest01 {
    @Test
    public void testJdbc(){
//        获取Spring的上下文环境
        BeanFactory beanFactory = new ClassPathXmlApplicationContext("spring.xml");
//        得到模板类 JbcdTemplate对象  (在spring.xml中,使用bean对象引入了IOC容器)
        JdbcTemplate jdbcTemplate = (JdbcTemplate)beanFactory.getBean("jdbcTemplate");
//        crud  操作
//        定义Sql语句
        String sql = "select count(1) from tb_account";
//        执行查询操作(无参数)
        Integer total = jdbcTemplate.queryForObject(sql,Integer.class);
        System.out.println("总记录数:"+total);
    }
    @Test
    public void testJdbc02(){
 //        获取Spring的上下文环境
        BeanFactory beanFactory = new ClassPathXmlApplicationContext("spring.xml");
//        得到模板类 JbcdTemplate对象  (在spring.xml中,使用bean对象引入了IOC容器)
        JdbcTemplate jdbcTemplate = (JdbcTemplate)beanFactory.getBean("jdbcTemplate");
//        crud  操作
//        定义Sql语句
        String sql = "select count(1) from tb_account where user_id = ?";
//        执行查询操作(有参数)
        Integer total = jdbcTemplate.queryForObject(sql,Integer.class,2);
        System.out.println("总记录数:"+total);
    }
}

 src/main/resources/spring.xml



    
    
    
    
    
    
        
        
        
        
        
    
    
    
        
    

src/main/resources/jdbc.properties

#驱动名
jdbc.driver=com.mysql.cj.jdbc.Driver
#数据库连接
jdbc.url=jdbc:mysql://localhost:3306/spring_jdbc?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
#数据库用户名称
jdbc.user=root
#数据库用户密码
jdbc.password=root

pom.xml 



  4.0.0

  org.example
  MySpringJDBC
  1.0-SNAPSHOT

  MySpringJDBC
  
  http://www.example.com

  
    UTF-8
    1.8
    1.8
  
  
    
      junit
      junit
      4.12
      test
    

    
    
    
      org.springframework
      spring-context
      5.3.10
    
    
    
    
      org.springframework
      spring-aop
      5.3.10
    
    
    
    
      org.aspectj
      aspectjweaver
      1.9.6
      runtime
    
    

    
    
    
      org.springframework
      spring-test
      5.3.10
      test
    
    
    
    
      org.springframework
      spring-jdbc
      5.3.10
    
    
    
    
      org.springframework
      spring-tx
      5.3.10
    
    
    
    
      mysql
      mysql-connector-java
      8.0.26
    
    
    
    
      com.mchange
      c3p0
      0.9.5.5
    

  

  

第二次发表博客,有不足之处还请大伙儿指出~

手打不易,未经允许不可用于商业转载!

转载请注明出处!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/305288.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号