Spring5-04:jdbcTemplate

本文介绍了如何在Spring框架中使用JdbcTemplate进行数据库操作,包括配置Druid连接池、注入jdbcTemplate,以及在DAO层实现增删操作。重点讲解了事务的概念、ACID特性,并展示了如何在服务和测试类中利用JdbcTemplate进行事务操作。
摘要由CSDN通过智能技术生成

Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作;

准备工作:

1、引入相关jar包

2、在spring配置文件中配置数据库连接池

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" 
 destroy-method="close">
     <property name="url" value="jdbc:mysql:///user_db" />
     <property name="username" value="root" />
     <property name="password" value="root" />
     <property name="driverClassName" value="com.mysql.jdbc.Driver" />
</bean>

3、配置jdbcTemplate对象,给jdbcTemplate注入之前配置的数据库连接池对象;

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
     <!--注入 dataSource-->
     <property name="dataSource" ref="dataSource"></property>
</bean>

4、创建service类、dao类,在dao接口实现类中注入jdbcTemplate对象;

⚫ Service
@Service
public class BookService {
 //注入 dao
 @Autowired
 private BookDao bookDao;
}
⚫ Dao
@Repository
public class BookDaoImpl implements BookDao {
 //注入 JdbcTemplate
 @Autowired
 private JdbcTemplate jdbcTemplate;
}

应用

//2、编写 service 和 dao
//(1)在 dao 进行数据库添加操作
//(2)调用 JdbcTemplate 对象里面 update 方法实现添加操作
//⚫ 有两个参数
//⚫ 第一个参数:sql 语句
//⚫ 第二个参数:可变参数,设置 sql 语句值
@Repository
public class BookDaoImpl implements BookDao {
 //注入 JdbcTemplate
 @Autowired
 private JdbcTemplate jdbcTemplate;
 //添加的方法
 @Override
 public void add(Book book) {
 //1 创建 sql 语句
 String sql = "insert into t_book values(?,?,?)";
 //2 调用方法实现
 Object[] args = {book.getUserId(), book.getUsername(), 
book.getUstatus()};
 int update = jdbcTemplate.update(sql,args);
 System.out.println(update);
 }
}
//3、测试类
@Test
public void testJdbcTemplate() {
 ApplicationContext context =
 new ClassPathXmlApplicationContext("bean1.xml");
 BookService bookService = context.getBean("bookService", 
BookService.class);
 Book book = new Book();
 book.setUserId("1");
 book.setUsername("java");
 book.setUstatus("a");
 bookService.addBook(book);
}

根据查询结果不同调用jdbcTemplate的不同方法:

某个值:

 第二个参数为:返回类型的Class,比如返回int,这里写Integer.class;

查询返回对象:

 第二个参数:

如果要返回的对象为Book则

new BeanPropertyRowMapper<Book>(Book.class)

查询返回集合:

 事务操作:重点掌握

1、什么事务

(1)事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操 作都失败

(2)典型场景:银行转账 * lucy 转账 100 元 给 mary * lucy 少 100,mary 多 100

2、事务四个特性(ACID)

(1)原子性 (2)一致性 (3)隔离性 (4)持久性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小馨java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值