Spring JdbcTemplate实例

简介

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS-为金额添加千分位逗号分割符

前言&#xff1a;这个功能在前端页面中使用的还是比较多的&#xff0c;正好我们的项目中也有使用此功能&#xff0c;不过YY同学写的代码不像个方法的样子&#xff0c;一个入口中间又插了几道子&#xff0c;所 以&#xff0c;我写了下面这个方法&#xff0c;经过测试…

将chart放入panel中出现滚动条_聊天场景在web前端开发中的体验与优化

在日常工作中&#xff0c;如下图的聊天场景是不是很熟悉&#xff0c;没错就是我们再熟悉不过的 QQ 和微信&#xff0c;一个正常的聊天界面大致上是长这个样子的&#xff1a;这种聊天窗口的消息流有两个明显的特点&#xff1a;最新的消息和滚动条初始位置需要在列表的最底部下拉…

一个(伪)MaterialDesign风格的博客园皮肤

皮肤长什么样&#xff0c;不用我说&#xff0c;相信各位点进来的看官都能看得一清二楚。 有关其他细节呢&#xff0c;也欢迎各位在我博客里逛逛&#xff0c;帮忙挑挑刺&#xff0c;提提建议。 由于水平有限&#xff0c;暂没能用CSS处理博客园的代码高亮字体&#xff0c;实在是有…

spring JdbcTemplate数据库查询实例

使用JdbcTemplate查询数据库的例子 配置等可以看前一篇文章&#xff1a; Spring JdbcTemplate实例 创建数据库 可以使用下面的SQL create table A( id INT (255) not null, primary key (id) ); 创建实体类 新建一个AEntity类用于映射表A的一行&#xff1a; Component p…

git checkout 单个文件_IntelliJ IDEA下的使用 Git

作者| JKYO链接 | cnblogs.com/pejsidney/p/9199115.html1、Git 简介Git是目前流行的分布式版本管理系统。它拥有两套版本库&#xff0c;本地库和远程库&#xff0c;在不进行合并和删除之类的操作时这两套版本库互不影响。也因此其近乎所有的操作都是本地执行&#xff0c;所以在…

小甲鱼c语言课后作业_知识,就是力量——山财“学习小课堂”助你蓄力

编者按少年&#xff0c;你渴望 知识的力量 吗&#xff1f;我们有山财最全的学习秘籍&#xff0c;只待你的耐心翻阅与潜心修炼&#xff01;接下来&#xff0c;就让我们一起查收学习干货~内容摘要本系列推送分为【悦览篇】【干货篇】【招募篇】三大模块。【悦览篇】编者会为大家推…

初步认识spring mvc

spring mvc 01Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;即使用了MVC架构模式的思想&#xff0c;将web层进行职责解耦&#xff0c;基于请求驱动指的就是使用请求-响应模型&#xff0c;框架的目的就是帮助我们简化开发&…

使用junit+mockito进行mock测试实例

刚开始做网站的时候&#xff0c;测试都是这样的&#xff08;比如测试修改用户信息的表单逻辑&#xff09;&#xff1a;设置断点&#xff0c;启动运行程序&#xff0c;登陆&#xff0c;点击点击点击然后进入到测试的页面&#xff0c;输入测试数据&#xff0c;进入断点…….。一个…

sdk怎么用_PLC不支持OPC UA怎么办?别问了看完你就懂了

经常有人会烦恼这个问题&#xff1a;我的上位机软件什么功能都有&#xff0c;也支持OPC UA了&#xff0c;现在项目上准备用OPC UA的方式来获取我的PLC的数据&#xff0c;但是我的PLC却不支持OPC UA&#xff0c;怎么办呢&#xff1f;有的人碰到这个问题后就开始了“病急乱投医”…

js学习大法:用好firebug,走遍天下都不怕

用js有一段时间了&#xff0c;但是一直手感不好。平时用DW来写js代码&#xff0c;常抱怨js的编辑器的自动代码提示和调试功能用起来很不爽&#xff0c;自动代码提示十分有限&#xff0c;而且写错一个单词这样的错误都要运行整个网页之后才发现。今天闲来无聊&#xff0c;翻看了…

初学Java6:Java OOP基础语法总结

*************** Java OOP 基 础 语 法 总 结 ************************* 1,类与对象1),类(class)是相同属性和方法的一组集合。 A,类的组成&#xff1a;属性和方法。 B,语法声明&#xff1a;使用class关键字&#xff0c;eg&#xff1a;public class Student{}//类名首字母大写…

python杀死了excel_Python杀死了Excel|自动更新表格,告别繁琐

大家好&#xff0c;又到了Python办公自动化专题。 今天我们讲解的案例是如何使用Python自动更新Excel表格&#xff0c;简单来说就是每天都会对Excel中多个sheet进行更新&#xff0c;需要操作完后可以用程序完成第一张sheet 汇总表的更新&#xff0c;大概就是这样&#x1f447;当…

TP-LINK路由器连接网线上网教程(租房必备)

租的房子&#xff0c;房子里只有一根普通网线&#xff0c;连着房东家的路由器&#xff0c;这时可以使用TP-LINK路由器使用LAN-WAN级联的方式&#xff0c;在室内搭建一个局域网。 设置教程 准备材料&#xff1a;1根网线 重置路由器&#xff1a;启动路由器&#xff0c;使用牙签…

推荐一款非常强大的扒站工具

在平时的开发或者学习的过程中&#xff0c;我们难免会看到一些让人心动的网站&#xff0c;于是自己想把它弄下来&#xff0c;自己手工一个文件一个文件把它保存下来不太可能&#xff0c;那得累死你&#xff0c;下面我推荐一款扒站的神器&#xff0c;可以把你所喜欢的目标网站整…

python脚本之家 包的创建和调用_python基础之包的导入和__init__.py的介绍

调用同级目录&#xff1a; – src |– mod.py |– test.py 若在程序test.py中导入模块mod, 则直接使用 import mod 或 from mod import * 调用子目录下的模块&#xff1a; – src |– mod.py |– lib | |– mod2.py |– test.py from lib.mod2 import * 或 import lib.mod2 调用…

无刷新分页 jquery.pagination.js

序言 这一款js分页使用起来很爽&#xff0c;自己经常用&#xff0c;做项目时总是要翻以前的项目看&#xff0c;不方便&#xff0c;这里就把他写出来方便自己以后粘帖&#xff0c;也希望能分享给大家。友情提示下&#xff1a;我有一片博客是用着个js实现的无刷新分页也很好用&am…

windows 10打开或禁用管理员账户

windows 10下默认关闭了管理员账户&#xff0c;因为权限太高&#xff0c;而且win 10推荐通过网络账户登录。如果要使用&#xff0c;可以通过下面的方式打开。 1、登录一个普通账户。 如果你是刚升级上来&#xff0c;普通账户都没有。那么&#xff0c;用别人的电脑下载安装老毛…

hbase filter原理_HBase应用|HBase在移动广告监测产品中的应用

1HBase在Ad Tracking的应用1.1Ad Tracking的业务场景Ad Tracking是TalkingData的移动广告监测产品&#xff0c;其核心业务模型是归因。App用户点击广告之后&#xff0c;及随后安装广告跳转到的应用或者游戏&#xff0c;Ad Tracking会对这些点击事件(用户点击广告的行为)和激活事…

const char *p、char const *p、char *const p

const char *p&#xff1a;p不是常量&#xff0c;可以修改p的值&#xff0c;但不能修改p指向空间的值char const *p与char *const p&#xff1a;p是常量&#xff0c;不能修改p的值&#xff0c;但能修改p指向空间的值const char *const p&#xff1a;两者均为常量&#xff0c;不…

eclipse 快捷键及插件

webstorm设置keymap为eclipse也可使用。 快捷键 快捷键用途使用方法编辑器事件ctrlt打开继承树将鼠标移到某个类上&#xff0c;按ctrltctrl/注释本行altshiefj生成属性注释&#xff0c;这杨的/**/ctrlalt 下箭头复制本行到下一行alt 下箭头移动本行到下一行ctrld删除整行alt/…