简介

Spring JdbcTemplate类是Spring提供的简化数据库操作的一个类,这个类使用了模板方法模式,可以减少一些重复代码。这里主要演示一下 JdbcTemplate 的使用。

完整的代码看这里:spring_jdbc_01

创建数据库

第一步是创建数据库。下面的SQL语句创建两个表。

    create table A(`id` INT (255) not null,primary key (`id`));create table B(`id` INT (255) not null,primary key (`id`));

添加依赖

一共需要加入四个依赖:spring-contextspring-jdbccommons-dbcpmysql-connector等,完整的pom.xml文件如下:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><!--自动生成--><modelVersion>4.0.0</modelVersion><groupId>com.lcl</groupId><artifactId>springlearning</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>springlearning</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--自动生成:结束--><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.2.3.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.2.3.RELEASE</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.18</version></dependency><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency> </dependencies></project>

配置bean.xml文件

这里主要是要配置一个数据源和一个jdbcTemplate类。

    <?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:p="http://www.springframework.org/schema/p"  xmlns:context="http://www.springframework.org/schema/context"  xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-3.0.xsd"><context:component-scan base-package="com.lcl"></context:component-scan><!--数据源--><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" ><property name="driverClassName"value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/common"></property><property name="username"value="root"></property><property name="password" value="ro!admin#ot"></property></bean><!--jdbc模板类--><bean id="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate"><constructor-arg ref="dataSource" ></constructor-arg></bean></beans>

代码

主要代码如下,这里使用 JdbcTempalte 进行批量插入操作。

@Component("app")
public class App
{@Autowired
private JdbcTemplate jdbcTemplate;public static void main( String[] args )
{ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");App app = (App) ctx.getBean("app");JdbcTemplate template = app.getJdbcTemplate();//构建要插入的数据集final List<Long> ids = new ArrayList<Long>();for(long i=25879 ;i< 80000 ; i=i+1){ids.add(i);}//使用jdbcTemplate类的批量插入方法进行插入template.batchUpdate("insert into b(id) values(?)", new BatchPreparedStatementSetter() {@Overridepublic void setValues(PreparedStatement ps, int i) throws SQLException {ps.setLong(1, ids.get(i));}@Overridepublic int getBatchSize() {return ids.size();}});
}public JdbcTemplate getJdbcTemplate() {return jdbcTemplate;
}public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;
}}

其它注意问题

  1. 一些注解比如 @Resource 需要jdk-1.6以上才能支持
  2. spring 4已经没有 SimpleJdbcTempalte 这个类了,它的功能被合并到了 JdbcTemplate

Spring JdbcTemplate实例相关推荐

  1. spring JdbcTemplate数据库查询实例

    使用JdbcTemplate查询数据库的例子 配置等可以看前一篇文章: Spring JdbcTemplate实例 创建数据库 可以使用下面的SQL create table A( `id` INT ...

  2. 【SSM框架系列】Spring - JdbcTemplate声明式事务

    JdbcTemplate概述 以往使用jdbc时,每次都需要自己获取PreparedStatement,执行sql语句,关闭连接等操作.操作麻烦冗余,影响编码的效率. Spring把对数据库的操作在j ...

  3. Spring JdbcTemplate示例

    Spring JdbcTemplate示例 Spring JdbcTemplate是Spring JDBC包中最重要的类. 目录[ 隐藏 ] 1 Spring JdbcTemplate 1.1 Spr ...

  4. Spring JdbcTemplate方法详解

    2019独角兽企业重金招聘Python工程师标准>>> Spring JdbcTemplate方法详解 标签: springhsqldbjava存储数据库相关sql 2012-07- ...

  5. Spring JdbcTemplate的queryForList(String sql , ClassT elementType)易错使用--转载

    原文地址: http://blog.csdn.net/will_awoke/article/details/12617383 一直用ORM,今天用JdbcTemplate再次抑郁了一次. 首先看下这个 ...

  6. 转载:为什么使用ibatis而不用spring jdbcTemplate

    第一:ibatis仅仅是对jdbc薄薄的一层封装,完全不丧失sql的灵活性 第二:ibatis所有的sql都可以放在配置文件中,这样有利于sql的集中管理,特别是在sql tuning是很容易把得到所 ...

  7. Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)返回非映射实体类的解决方法

    Spring JdbcTemplate的queryForList(String sql , Class elementType)返回非映射实体类的解决方法 参考文章: (1)Spring JdbcTe ...

  8. Spring Aop实例之AspectJ注解配置

    上篇博文<Spring Aop实例之xml配置>中,讲解了xml配置方式,今天来说说AspectJ注解方式去配置spring aop. 依旧采用的jdk代理,接口和实现类代码请参考上篇博文 ...

  9. spring jdbctemplate调用存储过程,返回list对象

    注:本文来源于< spring jdbctemplate调用存储过程,返回list对象 > spring jdbctemplate调用存储过程,返回list对象 方法: /*** 调用存储 ...

最新文章

  1. java validation_java bean validation 参数验证
  2. SQL 查询语句总是先执行 SELECT?
  3. 虚拟机游戏获取服务器地址,vue获取服务器地址
  4. java讲师助教简历模板,大学助教个人简历
  5. Class.forName()、Class.forName().newInstance() 、New 三者区别!
  6. 数据库系统工程师(软考)
  7. JAVA知识点(尚硅谷宋红康老师的b站授课自我整理)
  8. 工作半年就迷茫,给你一盏明灯
  9. 集成学习(ensemble learning)基础知识
  10. 【Luogu P1488】【博弈论】 肥猫的游戏
  11. 全新全球电竞赛事--世界超级联赛WSL发布首项赛事计划
  12. excel切片器_用Excel切片器做自动化表格,动态呈现,瞬间高大上
  13. Tomcat配置图片保存路径
  14. CSS 中最后一行中元素如何向左对齐
  15. 安装elasticsearch8.0.1之后无法访问9200:Empty reply from server
  16. 把复杂的事物及逻辑尽量简单化
  17. 论语 季氏篇(笔记)
  18. 2018结构、流体、热分析、多物理场耦合、电磁仿真计算特点与硬件配置方案分析
  19. bp神经网络分类器c语言,基于BP神经网络的隐写分析分类器设计
  20. 【渝粤题库】广东开放大学 国际标准化 形成性考核 (2)

热门文章

  1. fastapi vue socket 从其他文件调用 socket 方法
  2. Mongoose provide access to previous value of property in pre('save')
  3. 跳出内层循环 使用 for of 代替 map
  4. IP协议包中的TTL(Time-To-Live)
  5. table合并单元格宽度自适应
  6. Java 中 this 和 super 的用法总结
  7. dubbo使用nacos作为注册中心
  8. 第二章 findxargs
  9. 【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码
  10. Unity3D性能优化之Draw Call Batching