JdbcTemplate
什么是 JdbcTemplate(Template译为模板)
Spring 框架对 JDBC 进行封装,JdbcTemplate是Spring对JDBC的封装,使用 JdbcTemplate 方便实现对数据库操作,目的是使JDBC更加易于使用。JdbcTemplate是Spring的一部分。JdbcTemplate处理了资源的建立和释放。他帮助我们避免一些常见的错误,比如忘了总要关闭连接。他运行核心的JDBC工作流,如Statement的建立和执行,而我们只需要提供SQL语句和提取结果。
准备工作
引入相关 jar 包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
实体类,业务层,controller层与正常项目无异
实体类创建对象属性后类上方添加注解
@NoArgsConstructor
@AllArgsConstructor
@Data
service实现类中添加注解
@Service
@Transactional
Dao中应使用注解@Repository,并将JdbcTemplate注入到Dao层中:
@Repository
public class BookDao {
@Autowired
private JdbcTemplate jdbcTemplate;
//示例代码
//查询全部 返回集合
public List<Book> selectBook() {
String sql = "select * from book";
List<Book> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Book.class));
return list;
}
//查询单个 根据id查询 返回对象
public Book selectBookById(int id) {
String sql = "select * from book where bid = ?";
Book book = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<> (Book.class),id);
return book;
}
//添加
public int addBook(Book book) {
String sql = "insert into book" +
"(bname,bprice,bnum) value" +
"(?,?,?)";
int i = jdbcTemplate .update(sql, book.getBname() , book.getBprice(), book.getBnum());
return i;
}
//修改
public int updateBook(Book book) {
String sql = "update book set bname = ? where bid = ?";
int i = jdbcTemplate.update(sql,book.getBname(),book.getBid());
return i;
}
//删除
public int deleteBookById(int i) {
String sql = "delete from book where bid = ?";
int a = jdbcTemplate.update(sql,i);
return a;
}
//查询记录条数
public int selectBookAllRows() {
String sql = "select count(*) from book";
Integer integer = jdbcTemplate.queryForObject(sql, Integer.class);
return integer;
}
}