SpringBoot jdbctemplate使用方法解析
Spring為傳統(tǒng)的jdbc API進(jìn)行封裝,簡(jiǎn)化持久層操作,雖然jdbcTemplate很靈活,但和ORM框架相比jdbcTemplate功能就顯得力不從心了,學(xué)習(xí)jdbcTemplate是為學(xué)習(xí)ORM框架做鋪墊
ORM:對(duì)象關(guān)系映射 O:對(duì)象 R:關(guān)系 M:映射
下面簡(jiǎn)單介紹下 Springboot 應(yīng)用中如何使用 JdbcTemplate 對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作;
1、使用 IDEA 創(chuàng)建 SpringBoot 項(xiàng)目,引入數(shù)據(jù)庫(kù)連接依賴:
<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 數(shù)據(jù)庫(kù)建測(cè)試表
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、創(chuàng)建 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
@Servicepublic 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、編寫測(cè)試類
@SpringBootTestclass 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); }}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python實(shí)現(xiàn)迪杰斯特拉算法過(guò)程解析2. 基于Android FileProvider 屬性配置詳解及FileProvider多節(jié)點(diǎn)問(wèn)題3. 詳解Python模塊化編程與裝飾器4. Spring security 自定義過(guò)濾器實(shí)現(xiàn)Json參數(shù)傳遞并兼容表單參數(shù)(實(shí)例代碼)5. Python如何進(jìn)行時(shí)間處理6. 詳解java中static關(guān)鍵詞的作用7. JavaScript實(shí)現(xiàn)頁(yè)面動(dòng)態(tài)驗(yàn)證碼的實(shí)現(xiàn)示例8. JavaScript中的AOP編程的基本實(shí)現(xiàn)9. python使用ctypes庫(kù)調(diào)用DLL動(dòng)態(tài)鏈接庫(kù)10. python裝飾器三種裝飾模式的簡(jiǎn)單分析
