1 环境准备
1.1 添加相关依赖
1)数据源
2)数据库驱动
3)spring-jdbc模块
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
1.2 配置数据源和JdbcTemplate操作数据库
package com.bjc.config;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import com.mchange.v2.c3p0.ComboPooledDataSource;
@Configuration
@ComponentScan(basePackages = {"com.bjc"})
public class TxConfig {
//数据源
@Bean
public DataSource dataSource() throws Exception{
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setUser("root");
dataSource.setPassword("root");
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
return dataSource;
}
// JdbcTemplate
@Bean
public JdbcTemplate jdbcTemplate() throws Exception{
//Spring对@Configuration类会特殊处理;给容器中加组件的方法,多次调用都只是从容器中找组件
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource());
return jdbcTemplate;
}
}
1.3 业务测试类
1)service
package com.bjc.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bjc.dao.UserDao;
@Service
public class UserService {
@Autowired
private UserDao userDao;
public void save() {
userDao.save();
System.out.println("插入完成。。");
}
}
2)dao
package com.bjc.dao;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbc;
public void save() {
String sql = "INSERT INTO `user`(name,age) VALUES(?,?)";
String username = UUID.randomUUID().toString().substring(0, 5);
jdbc.update(sql, username,23);
}
}
1.4 测试
public class TxTest {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(TxConfig.class);
UserService bean = context.getBean(UserService.class);
bean.save();
}
}
运行结果:
查看数据库:

2 添加事务控制
2.1 配置事务管理器
在配置类中添加如下方法:
//注册事务管理器在容器中
@Bean
public PlatformTransactionManager transactionManager() throws Exception{
return new DataSourceTransactionManager(dataSource());
}
2.2 开启事务管理注解扫描——@EnableTransactionManagement
在配置类上加上注解@EnableTransactionManagement

注意:
1)这个是必须要开启的,如果不开启事务不生效
2)开启事务管理注解扫描之前,还需要配置事务管理器,否则报错
2.3 在业务类上添加事务控制注解——@Transactional

注意:该注解也可以用于类上,表示该类上的所有方法都需要事务控制
本文详细介绍了如何在Spring框架下使用JDBC进行数据库操作,并通过配置数据源、JdbcTemplate及事务管理器实现对数据库的高效操作与事务控制。通过具体代码示例,展示了如何创建配置类、业务测试类和服务类,以及如何在业务类上添加事务控制注解。
735

被折叠的 条评论
为什么被折叠?



