Springboot:整合JDBC
阿新 • • 發佈:2020-09-18
1、建立專案
(1)選擇模組
jdbc相關:
模板引擎:
專案建立後自動幫我們匯入了以下依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
(2)建立獲取資料庫連線的配置檔案
spring: datasource: username: root password: root driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/stu_mangement?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
2、測試連線
(1)查詢
@Controller public class JDBCController { @Autowired JdbcTemplate jdbcTemplate; @RequestMapping("/query") public List<Map<String, Object>> queryAll() { String sql = "SELECT * FROM student"; List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql); System.out.println(maps); return maps; } }
資料庫:
測試結果:
(2)增加
@GetMapping("/add") public String addStudent(){ //插入語句,注意時間問題 String sql = "insert into student(studentno, birthday,classno,phone,sex,sname,point) " + "values ('20171514','2017-11-18','2017','18739496655','男','zhai','899')"; jdbcTemplate.update(sql); return "addOk"; }
測試結果:
(3)修改
@GetMapping("/update/{id}") public String updateUser(@PathVariable("id") int id){ String sql = "update student set phone=? where studentno="+id; //資料 Object[] objects = new Object[1]; objects[0] = "12222222"; jdbcTemplate.update(sql,objects); return "updateOk"; }
測試結果:
(4)刪除
@RequestMapping("/delete/{id}") public String delStudent(@PathVariable("id") int id){ String sql = "delete from student where studentno=?"; jdbcTemplate.update(sql,id); return "deleteOk"; }
刪除後資料庫中對應的記錄消失
傳遞的引數是RestFul風格,採用傳統的方式如果使用get方式提交的話會暴露引數和對應的屬性,存在安全隱患。而採用RestFul風格傳遞資料只會暴露引數。