当前位置:网站首页>4.1 声明式事务之JdbcTemplate
4.1 声明式事务之JdbcTemplate
2022-08-04 05:24:00 【猿 白】
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)
指定当前测试类在spring的测试环境中执行,
此时可以通过注入的方式直接获取ioc容器的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]");
}
③查询一条数据为实体类对象
@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);
}
⑤查询单行单列的值
@Test
public void testGetCount(){
String sql = "select count(*) from t_user";
Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(integer);
}
边栏推荐
- OpenSSF 安全计划:SBOM 将驱动软件供应链安全
- leetcode 12. 整数转罗马数字
- 8款最佳实践,保护你的 IaC 安全!
- Bolb analysis of image processing (1)
- 如何将 DevSecOps 引入企业?
- Tactile intelligent sharing - SSD20X realizes upgrade display progress bar
- 嵌入式系统驱动初级【4】——字符设备驱动基础下_并发控制
- el-Select 选择器 底部固定
- 想低成本保障软件安全?5大安全任务值得考虑
- The difference between px, em, and rem
猜你喜欢
随机推荐
商城系统APP如何开发 都有哪些步骤
入坑软件测试的经验与建议
Will the 2023 PMP exam use the new version of the textbook?Reply is here!
C语言 -- 操作符详解
sql server如何得到本条记录与上一条记录的差异,即变动值
Introduction and application of go module
day13--postman接口测试
The symbol table
高性能高可靠性高扩展性分布式防火墙架构
[One step in place] Jenkins installation, deployment, startup (complete tutorial)
2022年PMP考试延迟了,该喜该忧?
力扣:70. 爬楼梯
C Expert Programming Chapter 4 The Shocking Fact: Arrays and Pointers Are Not the Same 4.3 What is a Declaration and What is a Definition
leetcode 12. Integer to Roman numeral
Do you think border-radius is just rounded corners?【Various angles】
flink cdc一启动,源端Oracle那台服务器的CPU就飙升到80%以上,会是啥原因呢?
【云原生--Kubernetes】Pod资源管理与探针检测
C Expert Programming Chapter 5 Thinking about Linking 5.1 Libraries, Linking and Loading
Uni-app 小程序 App 的广告变现之路:全屏视频广告
你以为border-radius只是圆角吗?【各种角度】