| 事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败 |
| <dependencies> |
| |
| <dependency> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| <version>1.1.1</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-beans</artifactId> |
| <version>5.3.18</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-context</artifactId> |
| <version>5.3.18</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-core</artifactId> |
| <version>5.3.19</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-expression</artifactId> |
| <version>5.3.18</version> |
| </dependency> |
| |
| |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-aop</artifactId> |
| <version>5.3.4</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-aspects</artifactId> |
| <version>5.3.4</version> |
| </dependency> |
| <dependency> |
| <groupId>net.sourceforge.cglib</groupId> |
| <artifactId>com.springsource.net.sf.cglib</artifactId> |
| <version>2.1.3</version> |
| </dependency> |
| <dependency> |
| <groupId>org.aopalliance</groupId> |
| <artifactId>com.springsource.org.aopalliance</artifactId> |
| <version>1.0.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.aspectj</groupId> |
| <artifactId>com.springsource.org.aspectj.weaver</artifactId> |
| <version>1.6.4.RELEASE</version> |
| </dependency> |
| |
| |
| <dependency> |
| <groupId>com.alibaba</groupId> |
| <artifactId>druid</artifactId> |
| <version>1.2.1</version> |
| </dependency> |
| <dependency> |
| <groupId>mysql</groupId> |
| <artifactId>mysql-connector-java</artifactId> |
| <version>8.0.26</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-jdbc</artifactId> |
| <version>5.3.4</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-orm</artifactId> |
| <version>5.3.4</version> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework</groupId> |
| <artifactId>spring-tx</artifactId> |
| <version>5.3.4</version> |
| </dependency> |
| </dependencies> |
| |
| <context:component-scan base-package="org.example"></context:component-scan> |
| |
| |
| <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" |
| destroy-method="close"> |
| <property name="url" value="jdbc:mysql://127.0.0.1:3306/jdbc" /> |
| <property name="username" value="root" /> |
| <property name="password" value="123456" /> |
| <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" /> |
| </bean> |
| |
| |
| <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> |
| |
| <property name="dataSource" ref="dataSource"></property> |
| </bean> |
-
创建数据库

-
添加数据

-
代码案例
| # 持久层接口 |
| public interface UserDao { |
| |
| |
| public void addMoney(); |
| |
| |
| public void reduceMoney(); |
| |
| } |
| |
| # 持久层实现 |
| @Repository |
| public class UserDaoImpl implements UserDao { |
| |
| @Autowired |
| private JdbcTemplate jdbcTemplate; |
| |
| |
| @Override |
| public void reduceMoney() { |
| String sql = "update t_account set money=money-? where username=?"; |
| jdbcTemplate.update(sql,100,"goudan"); |
| } |
| |
| |
| @Override |
| public void addMoney() { |
| String sql = "update t_account set money=money+? where username=?"; |
| jdbcTemplate.update(sql,100,"gousheng"); |
| } |
| |
| } |
| |
| # 业务层 |
| @Service |
| public class UserService { |
| |
| |
| @Autowired |
| private UserDao userDao; |
| |
| |
| public void accountMoney() { |
| userDao.reduceMoney(); |
| userDao.addMoney(); |
| } |
| |
| } |
| |
| # 测试类 |
| public class Test1 { |
| |
| @Test |
| public void testAccount() { |
| ApplicationContext context = |
| new ClassPathXmlApplicationContext("bean1.xml"); |
| UserService userService = context.getBean("userService", UserService.class); |
| userService.accountMoney(); |
| } |
| |
| } |
-
测试结果

-
报错1
| org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [ApplicationContext.xml] |
- 解决方案:将bean.xml放到resource目录下

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术