jdbcTemplate使用方法实例解析

 更新时间:2020年02月12日 10:23:33   转载 作者:小白coder  
这篇文章主要介绍了jdbcTemplate使用方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了jdbcTemplate使用方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDBC模板类是第一种工作模式。

JdbcTemplate类通过模板设计模式帮助我们消除了冗长的代码,只做需要做的事情(即可变部分),并且帮我们做哪些固定部分,如连接的创建及关闭。

在application-mybatis.xml中配置的DataSource注入到JdbcTemplate中,就可以使用JdbcTemplate模板了

配置文件中加入以下内容:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}"/><!--加载驱动-->
    <property name="url" value="${jdbc.url}"/><!--数据库的位置-->
    <property name="username" value="${jdbc.username}"/><!--数据库的用户名-->
    <property name="password" value="${jdbc.password}"/><!--对应的密码-->
    <property name="maxActive" value="50"/><!--连接池的最大活动数-->
    <property name="minIdle" value="5"/><!--最少保持5条空闲连接-->
    <property name="maxWait" value="5000"/><!--等待时间5秒-->
</bean>

java文件:

@Autowired
  @Qualifier("dataSource")
  public DataSource dataSource;

  public JdbcTemplate getJdbcTemplate(){
    JdbcTemplate jdbcTemplate = new JdbcTemplate(this.dataSource);
    return jdbcTemplate;
  }

此时jdbcTemplate变量中便会有相关的数据库的基本参数配置信息,

jdbcTemplate类型中有如下方法

JdbcTemplate主要提供以下五类方法:

execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;

update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;

query方法及queryForXXX方法:用于执行查询相关语句;

//1.查询一行数据并返回int型结果 
jdbcTemplate.queryForInt("select count(*) from test"); 
//2. 查询一行数据并将该行数据转换为Map返回 
jdbcTemplate.queryForMap("select * from test where name='name5'"); 
//3.查询一行任何类型的数据,最后一个参数指定返回结果类型 
jdbcTemplate.queryForObject("select count(*) from test", Integer.class); 
//4.查询一批数据,默认将每行数据转换为Map    
jdbcTemplate.queryForList("select * from test"); 
//5.只查询一列数据列表,列类型是String类型,列名字是name 
jdbcTemplate.queryForList(" 
select name from test where name=?", new Object[]{"name5"}, String.class); 
//6.查询一批数据,返回为SqlRowSet,类似于ResultSet,但不再绑定到连接上 
SqlRowSet rs = jdbcTemplate.queryForRowSet("select * from test");

call方法:用于执行存储过程、函数相关语句。

支持的回调接口如下:

JdbcTemplate类支持的回调类:

预编译语句及存储过程创建回调:用于根据JdbcTemplate提供的连接创建相应的语句;

PreparedStatementCreator:通过回调获取JdbcTemplate提供的Connection,由用户使用该Conncetion创建相关的PreparedStatement;

CallableStatementCreator:通过回调获取JdbcTemplate提供的Connection,由用户使用该Conncetion创建相关的CallableStatement;

预编译语句设值回调:用于给预编译语句相应参数设值;

PreparedStatementSetter:通过回调获取JdbcTemplate提供的PreparedStatement,由用户来对相应的预编译语句相应参数设值;

BatchPreparedStatementSetter:;类似于PreparedStatementSetter,但用于批处理,需要指定批处理大小;

自定义功能回调:提供给用户一个扩展点,用户可以在指定类型的扩展点执行任何数量需要的操作;
ConnectionCallback:通过回调获取JdbcTemplate提供的Connection,用户可在该Connection执行任何数量的操作;

StatementCallback:通过回调获取JdbcTemplate提供的Statement,用户可以在该Statement执行任何数量的操作;

PreparedStatementCallback:通过回调获取JdbcTemplate提供的PreparedStatement,用户可以在该PreparedStatement执行任何数量的操作;

CallableStatementCallback:通过回调获取JdbcTemplate提供的CallableStatement,用户可以在该CallableStatement执行任何数量的操作;

结果集处理回调:通过回调处理ResultSet或将ResultSet转换为需要的形式;

RowMapper:用于将结果集每行数据转换为需要的类型,用户需实现方法mapRow(ResultSet rs, int rowNum)来完成将每行数据转换为相应的类型。

RowCallbackHandler:用于处理ResultSet的每一行结果,用户需实现方法processRow(ResultSet rs)来完成处理,在该回调方法中无需执行rs.next(),该操作由JdbcTemplate来执行,用户只需按行获取数据然后处理即可。

ResultSetExtractor:用于结果集数据提取,用户需实现方法extractData(ResultSet rs)来处理结果集,用户必须处理整个结果集;

JdbcTemplate执行流程:首先定义SQL,其次调用JdbcTemplate方法执行SQL,最后通过RowCallbackHandler回调处理ResultSet结果集。

Spring JDBC解决方法相比传统JDBC编程方式简单多了,只有可变部分需要我们来做,其他的都由Spring JDBC框架来实现了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring Boot jar可执行原理的彻底分析

    Spring Boot jar可执行原理的彻底分析

    这篇文章主要给大家介绍了关于Spring Boot jar可执行原理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • 详解eclipse中Maven工程使用Tomcat7以上插件的方法

    详解eclipse中Maven工程使用Tomcat7以上插件的方法

    本篇文章主要介绍了详解eclipse中Maven工程使用Tomcat7以上插件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • java编程实现基于UDP协议传输数据的方法

    java编程实现基于UDP协议传输数据的方法

    这篇文章主要介绍了java编程实现基于UDP协议传输数据的方法,较为详细的分析了UDP协议的原理及Java编程实现数据传输客户端与服务器端的相关技巧,需要的朋友可以参考下
    2015-11-11
  • Springboot Activemq整合过程代码图解

    Springboot Activemq整合过程代码图解

    这篇文章主要介绍了Springboot Activemq整合过程代码图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java框架MyBatis接口编程过程解析

    Java框架MyBatis接口编程过程解析

    这篇文章主要介绍了Java框架MyBatis接口编程过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 在SpringBoot中使用Logback管理记录日志

    在SpringBoot中使用Logback管理记录日志

    本篇文章主要介绍了在SpringBoot中使用Logback管理记录日志,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Spring Cloud Hystrix线程池不足的解决方法

    Spring Cloud Hystrix线程池不足的解决方法

    这篇文章主要介绍了Spring Cloud Hystrix线程池不足的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • spring基于通用Dao的多数据源配置详解

    spring基于通用Dao的多数据源配置详解

    这篇文章主要为大家详细介绍了spring基于通用Dao的多数据源配置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下解
    2018-03-03
  • des加密解密JAVA与.NET互通实例

    des加密解密JAVA与.NET互通实例

    这篇文章主要介绍了des加密解密JAVA与.NET互通实例,大家参考使用吧
    2013-12-12
  • Eclipse/MyEclipse转IntelliJ IDEA完全攻略(图文)

    Eclipse/MyEclipse转IntelliJ IDEA完全攻略(图文)

    这篇文章主要介绍了Eclipse/MyEclipse转IntelliJ IDEA完全攻略(图文),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01

最新评论