【Spring JDBC】数据库开发:基本概念



Spring的数据库开发:基本概念

① Spring JdbcTemplate类

1.JdbcTemplate就是Spring对原始JDBC封装之后提供的一个操作数据库的工具类。我们可以借助JdbcTemplate来完成所有数据库操作,比如:增删改查等。

2.改造之后的JdbcTemplate主要提供以下三种类型的方法:

  • executeXxx() : 执行任何SQL语句,对数据库、表进行新建、修改、删除操作
  • updateXxx() : 执行新增、修改、删除等语句
  • queryXxx() : 执行查询相关的语句

返回顶部


② Spring JDBC的配置(包)

Spring JDBC抽象框架由四个包构成: coredataSourceobject以及support

  • org.springframework.jdbc.core包由JdbcTemplate类以及相关的回调接口(callback interface)和类组成。

  • org.springframework.jdbc.datasource包由一些用来简化DataSource访问的工具类,以及各种DataSource接口的简单实现(主要用于单元测试以及在J2EE容器之外使用JDBC)组成。工具类提供了一些静态方法,诸如通过JNDI获取数据连接以及在必要的情况下关闭这些连接。它支持绑定线程的连接,比如被用于DataSourceTransactionManager的连接。

  • org.springframework.jdbc.object包由封装了查询、更新以及存储过程的类组成,这些类的对象都是线程安全并且可重复使用的。它们类似于JDO,与JDO的不同之处在于查询结果与数据库是“断开连接”的。它们是在org.springframework.jdbc.core包的基础上对JDBC更高层次的抽象。

  • org.springframework.jdbc.support包提供了一些SQLException的转换类以及相关的工具类。

在JDBC处理过程中抛出的异常将被转换成org.springframework.dao包中定义的异常。因此使用Spring JDBC进行开发将不需要处理JDBC或者特定的RDBMS才会抛出的异常。所有的异常都是unchecked exception,这样我们就可以对传递到调用者的异常进行有选择的捕获。

要想使用JDBC,就得对其进行配置,下面是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"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
                           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

    <!-- 开启组件扫描 -->
    <context:component-scan base-package="JDBC"></context:component-scan>

    <!-- 1.配置数据库连接池   -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
        <!-- 1.1 连接数据库的url -->
        <property name="url" value="jdbc:mysql://localhost:3306/spring?useUnicode=true&amp;characterEncoding=utf8"></property>
        <!-- 1.2 连接数据库的用户名 -->
        <property name="username" value="root"></property>
        <!-- 1.3 连接数据库的密码 -->
        <property name="password" value="root"></property>
        <!-- 1.4 数据库驱动 -->
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    </bean>
    
    <!-- 2.创建JdbcTemplate对象 --- jdb模板 -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!-- 2.1 注入dataSource 数据源 -->
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    
    <!-- 3. 配置注入其他类 -->
    <bean id="xxx" class="xxx">
        <property name="jabcTemplate" ref="jdbcTemplate"></property>  
    </bean>
    ..........
</beans>

在上述代码中,定义了3个Bean,分别是dataSourcejdbcTemplate和需要注入类的Bean其中dataSource对应org.springframework.jdbc.datasource.DriverManagerDataSource类用于对数据源进行配置,jdbcTemplate对应的org.springframework.jdbc.core.JdbcTemplat类中定义了JdbcTemplate的相关配置。上述代码中dataSource的配置就是JDBC连接数据库时所需的4个属性。

这4个属性,需要根据数据库类型或者机器配置的不同设置相应的属性值。例如,如果数据库类型不同,需要更改驱动名称;如果数据库不在本地,则需要将地址中的localhost替换成相应的主机IP;如果修改过MySQL数据库的端口号(默认为3306),则需要加上修改的端口号,如果未修改,则端口号可以省略;同时连接数据库的用户名和密码需要与数据库创建时设置的用户名和密码保持一致,本示例中Spring数据库的用户名和密码都是root。

定义JdbcTemplate时,需要将dataSource注入到JdbcTemplate中,而其他需要使用JdbcTemplate的Bean,也需要将JdbcTemplate注入到该Bean中(通常注入到Dao类中,在Dao类中进行与数据库的相关操作)。

返回顶部


猜你喜欢

转载自blog.csdn.net/qq_45797116/article/details/114241586
今日推荐