当前位置:网站首页>4.1 JdbcTemplate for declarative transactions
4.1 JdbcTemplate for declarative transactions
2022-08-04 05:31:00 【ape white】
4、声明式事务
4.1、JdbcTemplate
4.1.1、简介
Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作
4.1.2、准备工作
①加入依赖
<dependencies>
<!-- 基于Maven依赖传递性,导入spring-context依赖即可导入当前所需所有jar包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.1</version>
</dependency>
<!-- Spring 持久化层支持jar包 -->
<!-- Spring 在执行持久化层操作、与持久化层技术进行整合过程中,需要使用orm、jdbc、tx三个
jar包 -->
<!-- 导入 orm 包就可以通过 Maven 的依赖传递性把其他两个也导入 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.3.1</version>
</dependency>
<!-- Spring 测试相关 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.1</version>
</dependency>
<!-- junit测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
<!-- 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.31</version>
</dependency>
</dependencies>
②创建jdbc.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC
jdbc.username=root
jdbc.password=root
③配置Spring的配置文件
<!--引入jdbc.properties-->
<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<bean class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
4.1.3、测试
①在测试类装配 JdbcTemplate
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-jdbc.xml")
public class JDBCTemplateTest {
@Autowired
private JdbcTemplate jdbcTemplate;
}
@RunWith(SpringJUnit4ClassRunner.class)
Specifies that the current test class is inspringExecuted in the test environment,
At this point, it can be obtained directly by injectionioc容器的bean
@ContextConfiguration(“classpath:spring-jdbc.xml”)
设置spring测试环境的配置文件
②测试增删改功能
增删改都是update:
@Test
public void jdbcInsert(){
String sql = "insert into t_user values(null,?,?,?,?,?)";
jdbcTemplate.update(sql,"root","3333",33,"女","[email protected]");
}
③Query a piece of data as an entity class object
@Test
public void testGetUserById(){
String sql = "select * from t_user where id = ?";
User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(User.class), 2);
System.out.println(user);
}
④查询多条数据为一个list集合
@Test
public void testGetAllUser(){
String sql = "select * from t_user";
List<User> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
query.forEach(System.out::println);
}
⑤Query the value of a single row and single column
@Test
public void testGetCount(){
String sql = "select count(*) from t_user";
Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(integer);
}
边栏推荐
- 7.16 Day22---MYSQL(Dao模式封装JDBC)
- word 公式编辑器 键入技巧 | 写数学作业必备速查表
- Typora 使用保姆级教程 | 看这一篇就够了 | 历史版本已被禁用
- 触觉智能分享-SSD20X实现升级显示进度条
- 8大软件供应链攻击事件概述
- C Expert Programming Chapter 4 The Shocking Fact: Arrays and pointers are not the same 4.1 Arrays are not pointers
- npm init [email protected] 构建项目报错SyntaxError: Unexpected token ‘.‘解决办法
- 5个开源组件管理小技巧
- 7.18 Day23----标记语言
- What is the salary of a software testing student?
猜你喜欢
随机推荐
如何低成本修bug?测试左移给你答案
Will the 2023 PMP exam use the new version of the textbook?Reply is here!
关于yolo7和gpu
擎朗智能全国研发创新中心落地光谷:去年曾获2亿美元融资
The 2022 PMP exam has been delayed, should we be happy or worried?
在被面试官说了无数次后,终于潜下心来整理了一下JVM的类加载器
自动化测试的成本高效果差,那么自动化测试的意义在哪呢?
去重的几种方式
What are the functions of mall App development?
字节最爱问的智力题,你会几道?
leetcode 12. Integer to Roman numeral
The difference between px, em, and rem
C Expert Programming Chapter 5 Thinking about Linking 5.1 Libraries, Linking and Loading
MySQL数据库(基础)
MySQL日志篇,MySQL日志之binlog日志,binlog日志详解
C Expert Programming Chapter 4 The Shocking Fact: Arrays and Pointers Are Not the Same 4.5 Other Differences Between Arrays and Pointers
7、特殊SQL的执行
5个开源组件管理小技巧
C专家编程 第5章 对链接的思考 5.3 函数库链接的5个特殊秘密
C Expert Programming Chapter 4 The Shocking Fact: Arrays and pointers are not the same 4.2 Why does my code not work









