当前位置:网站首页>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);
}
边栏推荐
- BFC、IFC、GFC、FFC概念理解、布局规则、形成方法、用处浅析
- 8大软件供应链攻击事件概述
- About yolo7 and gpu
- 3面头条,花7天整理了面试题和学习笔记,已正式入职半个月
- Mini program + e-commerce, fun new retail
- OpenGL绘制一个圆锥
- 附加:对于“与数据表对应的实体类“,【面对MongoDB时,使用的@Id等注解】和【以前面对MySQL时,使用的@Id等注解】,是不同的;
- Turn: Management is the love of possibility, and managers must have the courage to break into the unknown
- 擎朗智能全国研发创新中心落地光谷:去年曾获2亿美元融资
- leetcode 12. Integer to Roman numeral
猜你喜欢
How to simplify the automation of modern e-procurement?
See how DevExpress enriches chart styles and how it empowers fund companies to innovate their business
Turn: Management is the love of possibility, and managers must have the courage to break into the unknown
leetcode 12. 整数转罗马数字
Mini program + e-commerce, fun new retail
About yolo7 and gpu
读者让我总结一波 redis 面试题,现在肝出来了
[C language advanced] program environment and preprocessing
入坑软件测试的经验与建议
What is the salary of a software testing student?
随机推荐
符号表
el-Select 选择器 底部固定
The idea setting recognizes the .sql file type and other file types
leetcode 12. Integer to Roman numeral
Cache pool of unity framework
The Road to Ad Monetization for Uni-app Mini Program Apps: Full Screen Video Ads
TSF微服务治理实战系列(一)——治理蓝图
C专家编程 第5章 对链接的思考 5.3 函数库链接的5个特殊秘密
el-Select selector bottom fixed
Programming hodgepodge (4)
DataTable使用Linq进行分组汇总,将Linq结果集转化为DataTable
idea设置识别.sql文件类型以及其他文件类型
leetcode 12. 整数转罗马数字
[Cloud Native--Kubernetes] Pod Resource Management and Probe Detection
Hangdian Multi-School-Slipper- (tree map conversion + virtual point mapping)
C专家编程 第5章 对链接的思考 5.2 动态链接的优点
See how DevExpress enriches chart styles and how it empowers fund companies to innovate their business
Towards Real-Time Multi-Object Tracking(JDE)
想低成本保障软件安全?5大安全任务值得考虑
详解八大排序