1. 程式人生 > 實用技巧 >Springboot:整合JDBC

Springboot:整合JDBC

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風格傳遞資料只會暴露引數。