详解在spring中使用JdbcTemplate操作数据库的几种方式

2025-05-29 0 98

使用JdbcTemplate的步骤

1、设置spring-jdbc和spring-tx的坐标(也就是导入依赖)

?

1

2

3

4

5

6

7

8

9

10

11
<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>5.2.7.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-tx</artifactId>

<version>5.2.7.RELEASE</version>

</dependency>

2、创建数据表和实体类

  • 创建数据表的过程省略
  • 创建实体类Account
?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30
package com.jdbcTemplate.bean;

public class Account {

private String name;

private Double money;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Double getMoney() {

return money;

}

public void setMoney(Double money) {

this.money = money;

}

@Override

public String toString() {

return "Account{" +

"name='" + name + '\\'' +

", money=" + money +

'}';

}

}

3、创建数据源、JdbcTemplate对象

4、执行数据库操作

实现3、4步的方法提供以下三种

方法一:代码中直接配置数据源和数据对象

创建JdbcTemplate对象+执行jdbc语句

?

1

2

3

4

5

6

7

8

9

10

11
//创建数据源对象

DriverManagerDataSource ds = new DriverManagerDataSource();

ds.setDriverClassName("com.mysql.jdbc.Driver");

ds.setUrl("jdbc:mysql://localhost:3306/think");

ds.setUsername("root");

ds.setPassword("");

//创建jdbcTemplate对象

JdbcTemplate jt = new JdbcTemplate();

//执行操作(插入操作)

jt.setDataSource(ds);

jt.execute("insert into account(name,money)value('EVA',50000)");

方法二:在resources目录下配置xx.xml文件,对数据源、JdbcTemplate进行注入

配置xml文件

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
<?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"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd">

<!-- //配置数据源-->

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName" value="com.mysql.jdbc.Driver"/>

<property name="url" value="jdbc:mysql://localhost:3306/think"/>

<property name="username" value="root"/>

<property name="password" value=""/>

</bean>

<!-- //配置jdbcTemplate-->

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<property name="dataSource" ref="dataSource"/>

</bean>

使用配置操作数据库

编写test类测试

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
//二、使用配置操作数据库

//1、获取容器

ApplicationContext ac = new ClassPathXmlApplicationContext("beans5.xml");

//2、获取对象

JdbcTemplate jt = ac.getBean("jdbcTemplate",JdbcTemplate.class);

//、执行操作

// jt.execute("insert into account(name,money)value ('Alice',2000)");

//保存

//jt.update("insert into account(name,money)value (?,?)","Eden",100);

//更新

// jt.update("update account set money=?,name=? where name=?",1000,"Kiroto","Eden");

//删除

//jt.update("delete from account where name =? and money =?","Kiroto",1000);

//查找

List<Account> list = jt.query("select * from account where name =?",new BeanPropertyRowMapper<Account>(Account.class),"Eden");

System.out.println(list.isEmpty()?"没有查找结果":list.get(0));

方法三:使用接口实现

创建template接口和templateDAO接口实现类

接口

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14
package com.jdbcTemplate.test;

import com.jdbcTemplate.bean.Account;

public interface Template {

Account find(String name);

int update(Account account);

int delete(Account account);

int add(Account account);

}

接口实现类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36
package com.jdbcTemplate.test;

import com.jdbcTemplate.bean.Account;

import org.springframework.jdbc.core.BeanPropertyRowMapper;

import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;

public class TemplateDAO implements Template {

private JdbcTemplate jdbcTemplate;

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {

this.jdbcTemplate = jdbcTemplate;

}

public Account find(String name) {//查找

List<Account> list = jdbcTemplate.query("select * from account where name=?",

new BeanPropertyRowMapper<Account>(Account.class),name);

return list.isEmpty()?null:list.get(0);

}

public int update(Account account) {//更新

return jdbcTemplate.update("update account set money=? where name=?",

account.getMoney(),account.getName());

}

public int delete(Account account) {//删除

return jdbcTemplate.update("delete from account where name =?",account.getName());

}

public int add(Account account) {//添加

return jdbcTemplate.update("insert into account(name ,money)value (?,?)",account.getName(),account.getMoney());

}

}

在测试之前,因为多了一个接口实现类,除了数据源和jdbcTemplate之外,应当在xml配置文件中多配置一个TemplateDAO

?

1

2

3

4
<!-- 配置账户的持久层-->

<bean id="templateDAO" class="com.jdbcTemplate.test.TemplateDAO">

<property name="jdbcTemplate" ref="jdbcTemplate"/>

</bean>

编写测试类进行测试

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14
import com.jdbcTemplate.bean.Account;

import com.jdbcTemplate.test.Template;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class mytest {

public static void main(String[] args) {

ApplicationContext ac = new ClassPathXmlApplicationContext("beans6.xml");

Template tp = ac.getBean("templateDAO",Template.class);//注意对比方法二的不同

Account account = tp.find("Lily");

System.out.println(account.toString());

}

}

到此这篇关于详解在spring中使用JdbcTemplate操作数据库的几种方式的文章就介绍到这了,更多相关spring JdbcTemplate操作数据库内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://blog.csdn.net/L_GRAND_ORDER/article/details/107449883

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 详解在spring中使用JdbcTemplate操作数据库的几种方式 https://www.kuaiidc.com/119596.html

相关文章

发表评论
暂无评论