您好,登錄后才能下訂單哦!
首先新建一個簡單的數據表,通過操作這個數據表來進行演示
DROP TABLE IF EXISTS `items`; CREATE TABLE `items` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `name` varchar(10) DEFAULT NULL, `detail` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
引入JdbcTemplate的maven依賴及連接類
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
在application.properties文件配置mysql的驅動類,數據庫地址,數據庫賬號、密碼信息,application.properties新建在src/main/resource文件夾下
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/spring?useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.max-idle=10 spring.datasource.max-wait=10000 spring.datasource.min-idle=5 spring.datasource.initial-size=5 server.port=8080 server.session.timeout=10 server.tomcat.uri-encoding=UTF-8
新建一個實體類,屬性對應sql字段
package org.amuxia.start; public class Items { private Integer id; private String title; private String name; private String detail; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDetail() { return detail; } public void setDetail(String detail) { this.detail = detail; } public Items() { super(); // TODO Auto-generated constructor stub } public Items(Integer id, String title, String name, String detail) { super(); this.id = id; this.title = title; this.name = name; this.detail = detail; } @Override public String toString() { return "Items [id=" + id + ", title=" + title + ", name=" + name + ", detail=" + detail + "]"; } }
新增操作
/** * 新增數據 * @param items * @return */ @RequestMapping("/add") public @ResponseBody String addItems(Items items) { String sql = "insert into items (id,title,name,detail) value (?,?,?,?)"; Object args[] = {items.getId(),items.getTitle(),items.getName(),items.getDetail()}; int temp = jdbcTemplate.update(sql, args); if(temp > 0) { return "文章新增成功"; } return "新增出現錯誤"; }
我們做一個測試。在postman測試工具中輸入http://localhost:8080/items/add
我們可以看到,新增已經成功了,確實很方便,也沒有繁瑣的配置信息。
其余刪除,更新操作與新增代碼不變,只是sql的變化,這里不做演示。
全部查詢操作
/** * @return * 查詢全部信息 */ @RequestMapping("/list") public List<Map<String, Object>> itemsList() { String sql = "select * from items"; List<Map<String, Object>> list = jdbcTemplate.queryForList(sql); return list; }
我們做一個測試。在postman測試工具中輸入http://localhost:8080/items/list
我們看到,包括剛才新增的數據,都已經被查出來了。
這里為了學習一下springboot的JdbcTemplate操作,所有增刪改查代碼都寫在ItemsController類中,也方便演示,這里把代碼貼出來,需要的可以運行一下
package org.amuxia.start; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.ComponentScan; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @ComponentScan @RestController @RequestMapping("/items") public class ItemsController { @Autowired private JdbcTemplate jdbcTemplate; /** * @return * 查詢全部信息 */ @RequestMapping("/list") public List<Map<String, Object>> itemsList() { String sql = "select * from items"; List<Map<String, Object>> list = jdbcTemplate.queryForList(sql); return list; } /** * @param id * @return * 根據ID查詢單條信息 */ @RequestMapping("/detail/{id}") public Map<String, Object> detail(@PathVariable int id) { Map<String, Object> map = null; List<Map<String, Object>> list = itemsList(); map = list.get(id); return map; } /** * 新增數據 * @param items * @return */ @RequestMapping("/add") public @ResponseBody String addItems(Items items) { String sql = "insert into items (id,title,name,detail) value (?,?,?,?)"; Object args[] = {items.getId(),items.getTitle(),items.getName(),items.getDetail()}; int temp = jdbcTemplate.update(sql, args); if(temp > 0) { return "文章新增成功"; } return "新增出現錯誤"; } /** * @param items * @return * 刪除數據 */ @RequestMapping("/del") public @ResponseBody String delItems(Items items) { String sql = "delete from items where id = ?"; Object args[] = {items.getId()}; int temp = jdbcTemplate.update(sql, args); if(temp > 0) { return "文章刪除成功"; } return "刪除出現錯誤"; } /** * @param items * @return * 更新操作 */ @RequestMapping("/upd") public @ResponseBody String updItems(Items items) { String sql = "update items set title = ?,detail = ? where id = ?"; Object args[] = {items.getTitle(),items.getDetail(),items.getId()}; int temp = jdbcTemplate.update(sql, args); if(temp > 0) { return "文章修改成功"; } return "修改出現錯誤"; } }
這里解釋一個注解
@ComponentScan:
@ComponentScan告訴Spring 哪個注解標識的類會被spring自動掃描并且裝入bean容器。如果你有個類用@Controller注解標識了,那么,如果不加上@ComponentScan自動掃描該controller,那么該Controller就不會被spring掃描到,更不會裝入spring容器中,Controller就不會起作用。
啟動類代碼
package org.amuxia.start; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RestController; @RestController @EnableAutoConfiguration public class App { public static void main( String[] args ) { System.out.println( "start....." ); SpringApplication.run(ItemsController.class, args); } }
總結
以上所述是小編給大家介紹的springboot使用JdbcTemplate完成對數據庫的增刪改查功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。