5 JdbcTemplate模板

1

我们回看一张老图,我们已经看了ioc,iop,今天我们关心左上角一块,数据库相关的内容,java有对数据库的处理模块JDBC(然而我还没用过),我们今天研究的JdbcTemplate就是对JDBC的spring封装,方便实现对数据库的增删改查操作

准备工作

1 安装jar包

2

其中druid连接池我们已经安装过了,不过如果没有安装还是需要安装的,还需要其资源的mysql-connector-java包,

3

还有spring lib下的几个包,jdbc,orm,tx,其中jdbc肯定是必要的,Orm是使用其他映射框架使用的,tx是事务相关的

4

往常一样导入依赖

2  配置druid连接池

这步之前做过,需要创建xml文件,把如下图所示内容粘贴过去,,(资源自带txt文件),这里省略了windows的mysql安装,其实很简单的,下载安装包设置就完了,这里为了一致我设置了视频一样的密码

5
6

由于xml配置的是user_db数据库,我们创建一个名称一样的

3 配置JdbcTemplate对象,注入DataSource

我们之前在xml创建druid连接池,就是创建一个可连接的数据源,现在创建JdbcTemplate对象

7

当然还是老办法创建bean,这里class路径按照上图

8

我们查看这个类,可以看到其有参无参构造,但是其实默认还是设置的set方法

9

我们只需要设置property标签,使用ref指向我们的druid连接池

4 创建Service服务类,创建Dao数据库操作类,在Service注入Dao属性,在Dao注入JdbcTemplate属性

10

我们准备使用注解,然后再xml里配置context名称空间和组件扫描

11

创建2个包service和dao,创建BookService类,BookDao接口和其实现类

12

我们注解创建对象,给Service加上注解

13

给Dao实现类加上注解创建对象

14

我们给Service注入Dao对象,使用注解@AutoWired自动装配

15

Dao里注入JdbcTemplate操作

至此完成准备工作

JDBC的数据库操作(增删改查)

增加操作

16

我们在mysql里创建一张表,操作语句如上,我们创建3个字段,book的id,name,status

17

我们创建类Book,设置3个字段和setter,getter如上

18

我们给Service增加方法addBook,传入Book对象,使用bookDao对象添加

19

我们给接口增加抽象方法add,

20

在实现类里我们重写方法,这里我们使用jdbc来操作,具体使用对象的update方法来实现操作(增删改查都是靠他),其中第一个参数为sql语句,第二个参数为可变参数(我们也可以传入数组)

21

我们使用sql语句如上,?是被替换的部分,我们通过book获得属性传给可变参数

22

我们编写测试类,这里本来book应该是表单给我的,这里我们没有,只能new个出来,

23

运行结果如上,我们就实现了添加到数据库,这里需要注意的是url即数据库地址我修改了,出现编码问题我设置了https://blog.csdn.net/txwtech/article/details/80787886如上,还有是用户账户设置的问题,参照https://www.jianshu.com/p/e3105a4657b8重置了密码就好了,中间还重新建了库和表,因为忘了设置user_db为utf8

24

使用完可以看到添加效果

修改和删除

25

我们还是一样,给Service添加功能

26

接口添加抽象方法

27

实现类里重写,sql语句如上,注意格式

28
29

测试类和修改结果如上

30

删除效果及测试类代码

查询操作

查询返回某个值

我们还有印象select count(*) from 表名  来活得记录数

31

我们在service里增加功能,同样接口和实现类添加功能,不重复贴图了

32

在实现类里,sql语句还是之前的,但是我们要调用jdbctemplate对象的queryForObject方法,第一个参数当然是sql字符串,第二个是返回类型class字节码

33

实现类如上,我们因为要返回int,所以使用泛型Integer的字节码

34

我们调用方法,添加2本书,然后输出统计

35

结果和如上一样

查询返回对象

此场景常常是,比如我们网页选择了某本书,弹出页面显示其具体信息

36

比如我们根据id查找Book类,那就service里定义功能,同时接口和实现类完成

37

我们还是使用queryForObject方法,不过这次使用重载,3个参数,参数1是带?的sql语句,参数3是替代?的字符串,这里是id,参数2 RowMapper<T>是指定泛型的接口,我们使用spring给我们封装好的实现类即可

38

实现类方法如上,

39

我们删掉之前的book,然后添加2个查询,结果如上

查询返回集合

40

service里定义方法findall返回Book类型集合

41

在实现类里重写,这里使用的方法是query和之前不一样,2个参数,第一个是sql,第二个还是RowMapper接口,我们就使用实现类传入

42

因为是集合我们可以遍历返回元素,测试效果如上

批量操作

批量添加

43

批量添加使用的是JdbcTemplate的batchUpdate方法,其中参数1还是添加语句和之前一样,但是args参数2是包含Object数组的LIST对象(像二维列表,又不是),实现类如上

44
45

我们在service类和接口里定义对应方法

46

测试类里我们使用创建List对象给书的属性传入,然后args集合传给方法,

47

效果如上

批量修改

方法也是JdbcTemplate的batchUpdate方法

48

比如我们对指定bookid进行修改,

49

测试类里就对我们刚才的3个book的书名和状态修改

50

效果如上

批量删除

同样是使用batchUpdate

51
52
53

测试类即结果如上,就不多说啦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352