当前位置:网站首页>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);
}
边栏推荐
- C Expert Programming Chapter 4 The Shocking Fact: Arrays and pointers are not the same 4.4 Matching declarations to definitions
- C Expert Programming Chapter 4 The Shocking Fact: Arrays and Pointers Are Not the Same 4.5 Other Differences Between Arrays and Pointers
- 【云原生--Kubernetes】Pod资源管理与探针检测
- 败给“MySQL”的第60天,我重振旗鼓,四面拿下蚂蚁金服offer
- MySql数据恢复方法个人总结
- What are the steps for how to develop a mall system APP?
- JS基础--强制类型转换(易错点,自用)
- Cannot read properties of null (reading ‘insertBefore‘)
- Performance testing with Loadrunner
- 12、分页插件
猜你喜欢
随机推荐
C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.5 数组和指针的其他区别
C Expert Programming Chapter 5 Thinking about Chaining 5.6 Take it easy --- see who's talking: take the Turning quiz
What are the steps for how to develop a mall system APP?
Turn: Management is the love of possibility, and managers must have the courage to break into the unknown
符号表
Shocked, 99.9% of the students didn't really understand the immutability of strings
MySql数据恢复方法个人总结
编程大杂烩(四)
力扣:70. 爬楼梯
Use Patroni callback script to bind VIP pit
C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.2 我的代码为什么无法运行
7、特殊SQL的执行
What are the functions of mall App development?
嵌入式系统驱动初级【3】——字符设备驱动基础中_IO模型
C Expert Programming Chapter 4 The Shocking Fact: Arrays and Pointers Are Not the Same 4.5 Other Differences Between Arrays and Pointers
8. Custom mapping resultMap
Programming hodgepodge (4)
The difference between px, em, and rem
Performance testing with Loadrunner
3面头条,花7天整理了面试题和学习笔记,已正式入职半个月









