SpringBoot 中 jdbctemplate 的使用
Spring为传统的jdbc API进行封装,简化持久层操作,虽然jdbcTemplate很灵活,但和ORM框架相比jdbcTemplate功能就显得力不从心了,学习jdbcTemplate是为学习ORM框架做铺垫
ORM:对象关系映射 O:对象 R:关系 M:映射
下面简单介绍下 Springboot 应用中如何使用 JdbcTemplate 对数据库进行操作;
1、使用 IDEA 创建 SpringBoot 项目,引入数据库连接依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.15</version> </dependency>
2、MYSQL 数据库建测试表
CREATE TABLE `book` ( `book_id` INT(11) NOT NULL AUTO_INCREMENT, `book_name` VARCHAR(200) DEFAULT NULL, `price` INT(11) DEFAULT NULL, PRIMARY KEY (`book_id`) ) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
3、创建 bean
/** * @author wdh01 * @create 2020-04-29 23:59 */ public class Book { private Integer id; private String book_name; private double price; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getBook_name() { return book_name; } public void setBook_name(String book_name) { this.book_name = book_name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } }
4、编写 service
@Service public class BookService { @Autowired JdbcTemplate jdbcTemplate; //insert public Integer addBook(Book book) { return jdbcTemplate.update("insert book (book_name,price) values (?,?)", book.getBook_name(), book.getPrice()); } //update 操作 public Integer updateBook(Book book) { return jdbcTemplate.update("update book set price = ? where book_id = ?", book.getPrice(),book.getId()); } //delete public Integer deleteBook(Book book) { return jdbcTemplate.update("delete from book where book_id = ?",book.getId()); } }
5、编写测试类
@SpringBootTest class JdbctemplateApplicationTests { @Autowired BookService bookService; @Test void contextLoads() { Book book = new Book(); book.setBook_name("笑傲江湖"); book.setPrice(120); bookService.addBook(book); } @Test public void testUpdate() { Book book = new Book(); book.setPrice(10); book.setId(5); bookService.updateBook(book); } @Test public void testDelete() { Book book = new Book(); book.setId(5); bookService.deleteBook(book); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下