当前位置:网站首页>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);
}
边栏推荐
- MySQL数据库面试题总结(2022最新版)
- MySql数据恢复方法个人总结
- [Cloud Native--Kubernetes] Pod Resource Management and Probe Detection
- 触觉智能分享-SSD20X实现升级显示进度条
- 路网编辑器技术预研
- 嵌入式系统驱动初级【3】——字符设备驱动基础中_IO模型
- OpenGL绘制圆
- [One step in place] Jenkins installation, deployment, startup (complete tutorial)
- Will the 2023 PMP exam use the new version of the textbook?Reply is here!
- Gartner 权威预测未来4年网络安全的8大发展趋势
猜你喜欢
随机推荐
Uni-app 小程序 App 的广告变现之路:全屏视频广告
MySQL数据库(基础)
8款最佳实践,保护你的 IaC 安全!
Chapter 5 C programming expert thinking 5.4 alert Interpositioning of links
Will the 2023 PMP exam use the new version of the textbook?Reply is here!
4.2 声明式事务概念
[Cloud Native--Kubernetes] Pod Resource Management and Probe Detection
C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.5 数组和指针的其他区别
MySQL日志篇,MySQL日志之binlog日志,binlog日志详解
如何低成本修bug?测试左移给你答案
8. Custom mapping resultMap
12、分页插件
《看见新力量》第四期免费下载!走进十五位科技创业者的精彩故事
少年成就黑客,需要这些技能
7.18 Day23----标记语言
[Cocos] cc.sys.browserType可能的属性
Gartner 权威预测未来4年网络安全的8大发展趋势
C Expert Programming Chapter 4 The Shocking Fact: Arrays and pointers are not the same 4.1 Arrays are not pointers
FPGA学习笔记——知识点总结
static在不同位置定义变量居然还有不同的含义?




![[C language advanced] program environment and preprocessing](/img/ac/a13dd2cc47136d4938b6fc7fad660c.png)




