当前位置:网站首页>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);
}
边栏推荐
- 嵌入式系统驱动初级【4】——字符设备驱动基础下_并发控制
- As soon as flink cdc is started, the CPU of the source Oracle server soars to more than 80%. What is the reason?
- 4.1 声明式事务之JdbcTemplate
- Cannot read properties of null (reading ‘insertBefore‘)
- What is the salary of a software testing student?
- Shocked, 99.9% of the students didn't really understand the immutability of strings
- OpenGL绘制一个圆锥
- Teenage Achievement Hackers Need These Skills
- 使用Patroni回调脚本绑定VIP的坑
- 《看见新力量》第四期免费下载!走进十五位科技创业者的精彩故事
猜你喜欢

FPGA学习笔记——知识点总结

7.16 Day22---MYSQL(Dao模式封装JDBC)

触觉智能分享-SSD20X实现升级显示进度条

高性能高可靠性高扩展性分布式防火墙架构

The symbol table

leetcode 12. 整数转罗马数字

About yolo7 and gpu

The idea setting recognizes the .sql file type and other file types

el-Select 选择器 底部固定

npm报错Beginning October 4, 2021, all connections to the npm registry - including for package installa
随机推荐
一个对象引用的思考
在被面试官说了无数次后,终于潜下心来整理了一下JVM的类加载器
MySQL日志篇,MySQL日志之binlog日志,binlog日志详解
代码重构:面向单元测试
腾讯136道高级岗面试题:多线程+算法+Redis+JVM
8款最佳实践,保护你的 IaC 安全!
离线采集怎么看sql执行计划
Will the 2023 PMP exam use the new version of the textbook?Reply is here!
C Expert Programming Chapter 5 Thinking about Chaining 5.6 Take it easy --- see who's talking: take the Turning quiz
Turn: Management is the love of possibility, and managers must have the courage to break into the unknown
Do you think border-radius is just rounded corners?【Various angles】
【JS】js给对象动态添加、设置、删除属性名和属性值
MySQL日期函数
LCP 17. 速算机器人
Teenage Achievement Hackers Need These Skills
触觉智能分享-SSD20X实现升级显示进度条
OpenGL绘制一个圆锥
Programming hodgepodge (4)
部署LVS-DR群集【实验】
Typora 使用保姆级教程 | 看这一篇就够了 | 历史版本已被禁用