SpringBoot 使用JDBC連接Mysql數據庫

1.環境

win10
jdk13
Eclipse IDE for Enterprise Java Developers Version: 2019-12 (4.14.0)
apache-maven-3.6.3
mysql-8.0.19-winx64

2.創建數據庫,建表

在這裏插入圖片描述
建表,插入數據

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `ID` int(0) NOT NULL AUTO_INCREMENT,
  `AGE` int(0) NULL DEFAULT NULL,
  `NAME` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
  `SCORE_SUM` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
  `SCORE_AVG` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
  PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
INSERT INTO `student` VALUES (1, 18, 'stu1', '700', '100');

3.創建springboot項目

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
加載完成

4.創建相關文件以及配置

注意:開發中用到lombok 註解,需先安裝插件,lombok 安裝

1.pom.xml配置

<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.12.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>

		<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>
		

 		<!--lombok 註解 引入依賴,安裝插件方可使用-->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<!-- <version>1.16.10</version> -->
		</dependency>
 
		 <dependency> 
		 <groupId>org.springframework.boot</groupId> 
		 <artifactId>spring-boot-configuration-processor</artifactId> 
		 <optional>true</optional> 
		 </dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>


		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

2.application.yml配置

server:
    port: 9000
spring:
    datasource:
        url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC
        username: root
        password: 
        driver-class-name: com.mysql.cj.jdbc.Driver

3.創建相關類

package com.example.demo.entity;

import java.io.Serializable;

import org.springframework.stereotype.Component;

import lombok.Data;

/**
 * 學生實體
 *
 */
@Component 
@Data // lombok 註解,get set 方法省略
public class Student implements Serializable{

    private static final long serialVersionUID = 1L;

    private int id;
    private String name;
    private String sumScore;
    private String avgScore;
    private int age;
    
}

package com.example.demo.service;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Service;

import com.example.demo.entity.Student;

/**
 *   Service
 *
 */
@Service
public class StudentService {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public List<Student> getList(){
        String sql = "SELECT ID,NAME,SCORE_SUM,SCORE_AVG, AGE   FROM STUDENT";
        return (List<Student>) jdbcTemplate.query(sql, new RowMapper<Student>(){

            @Override
            public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
                Student stu = new Student();
                stu.setId(rs.getInt("ID"));
                stu.setAge(rs.getInt("AGE"));
                stu.setName(rs.getString("NAME"));
                stu.setSumScore(rs.getString("SCORE_SUM"));
                stu.setAvgScore(rs.getString("SCORE_AVG"));
                return stu;
            }

        });
    }
}
package com.example.demo.controller;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.entity.Student;
import com.example.demo.service.StudentService;

@RestController
@RequestMapping("/stu")
public class StudentController {

    private static final Logger logger = LoggerFactory.getLogger(StudentController.class);

    @Autowired
    private StudentService studentService;

    @RequestMapping("/list")
    public List<Student> getStus(){
        logger.info("從數據庫讀取Student集合");
        return studentService.getList();
    }
}


4.啓動SpringBoot項目

http://localhost:9000/stu/list

返回成功

[{"id":1,"name":"stu1","sumScore":"700","avgScore":"100","age":18}]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章