Spring-boot的jdbc簡(jiǎn)單實(shí)踐

簡(jiǎn)介

Spring-boot 中為我們提供了一套非常簡(jiǎn)單易用的開(kāi)發(fā)框架,本文將記錄Spring-boot 中如何連接MySql。由于筆者是第一次接觸后端開(kāi)發(fā),如有問(wèn)題,歡迎指正。

各種配置

MySql

當(dāng)我們要在本地調(diào)試MySql時(shí),我們首先需要確認(rèn),本地有個(gè)運(yùn)行著的MySql。所以,我們首先要在本地下載一個(gè)MySql。此處推薦brew直接下載。


// 下載安裝
brew install mysql 

// 啟動(dòng)
mysql -u root -p

接下來(lái),我們可以看一下,MySql的簡(jiǎn)單命令:

// 查看MySql中有哪些數(shù)據(jù)庫(kù)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| ocean_database     |
| performance_schema |
| sys                |
+--------------------+

// 選擇某個(gè)數(shù)據(jù)庫(kù)
mysql> use ocean_database;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

// 顯示所有表
mysql> show tables;
+--------------------------+
| Tables_in_ocean_database |
+--------------------------+
| user_table               |
+--------------------------+

// 顯示表中所有數(shù)據(jù)
mysql> select * from user_table;
+----+-------+-----+-----+
| id | name  | age | sex |
+----+-------+-----+-----+
| 1  | ocean | 28  | m   |
+----+-------+-----+-----+

關(guān)于如何建表,如何增加數(shù)據(jù)不是本篇重點(diǎn),讀者可自行查閱MySql的相關(guān)語(yǔ)法。

除了以上命令,我們還需要知道當(dāng)前MySql的一些信息。

// 查詢MySql的端口號(hào)
mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+

// 查詢版本號(hào)
mysql> status;
--------------
mysql  Ver 8.0.16 for macos10.14 on x86_64 (MySQL Community Server - GPL)

Connection id:      54
Current database:   ocean_database
Current user:       root@localhost
SSL:            Not in use
Current pager:      less
Using outfile:      ''
Using delimiter:    ;
Server version:     8.0.16 MySQL Community Server - GPL
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:        /tmp/mysql.sock
Uptime:         7 days 7 min 1 sec

Threads: 2  Questions: 210  Slow queries: 0  Opens: 226  Flush tables: 3  Open tables: 131  Queries per second avg: 0.000
--------------

我們通過(guò)上面的命令知道,本地環(huán)境中,MySql的端口號(hào)為3306,版本號(hào)為8.0.16。這些信息都是非常重要的。

pom.xml

在spring-boot中,我們使用pom.xml來(lái)管理我們的依賴。我們要操作MySql當(dāng)然需要依賴一些第三方組件。由于我們準(zhǔn)備的調(diào)用方式,我們需要加入如下兩個(gè)依賴:

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>
    </dependencies>

這里要注意,mysql-connector-java的版本一定要與本地的MySql版本一致!否則將連接失敗。

application.properties

application.properties 中,我們配置mysql的連接信息。

##########################################################
#
# mysql
#
##########################################################
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ocean_database?characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=******(不能給你看)
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

這里需要注意的是,端口、數(shù)據(jù)庫(kù)名、密碼一定要正確,這就是前面準(zhǔn)備那么多MySql指令的作用了。

快速開(kāi)始

完成了以上的配置,我們就可以開(kāi)始開(kāi)發(fā)軟件,操作MySql了。

JdbcController

@RestController
public class JdbcController {


    @Resource
    private JdbcTemplate jdbcTemplate;


    @RequestMapping(value = "/users" , method = RequestMethod.GET)
    public String getUserList(ModelMap map){
        String sql = "SELECT * FROM user_table";
        List<User> userList = jdbcTemplate.query(sql, new RowMapper<User>() {
            User user = null;
            @Override
            public User mapRow(ResultSet resultSet, int i) throws SQLException {
                user = new User();
                user.setId(resultSet.getString("id"));
                user.setName(resultSet.getString("name"));
                user.setSex(resultSet.getString("sex"));
                user.setAge(resultSet.getString("age"));
                return user;

            }

        });
        StringBuilder builder = new StringBuilder();
        for (User user : userList){
            builder.append("name : ").append(user.getName()).append("\n");
        }

        return builder.toString();

    }
}

我們調(diào)用了SELECT * FROM user_table然后將數(shù)據(jù)存入U(xiǎn)ser中。

public class User {
    private String id;
    private String name;
    private String age;
    private String sex;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

最后,顯示User中的name字段。

完成以上代碼后,我們就可以在localhost中,看到我們從MySql中查詢的結(jié)果啦。

至此,一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)demo就完成啦。

小結(jié)

jdbc只是spring-boot提供的一個(gè)執(zhí)行簡(jiǎn)單sql語(yǔ)句的引摯。當(dāng)我們真正進(jìn)行數(shù)據(jù)庫(kù)相關(guān)的開(kāi)發(fā)時(shí),jdbc是不夠用的。

本文只是為了記錄MySql環(huán)境的配置。要點(diǎn)就是:版本、域名、端口、密碼的正確性。

如有問(wèn)題,歡迎指正。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容