springboot如何集成mysql
springboot集成mysql
引入依賴
在pom文件中加入如下依賴:
<!--集成mysql數(shù)據(jù)庫--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
添加數(shù)據(jù)庫配置
在spring boot項(xiàng)目的配置文件 application.properties
中添加如下配置:
#集成mysql數(shù)據(jù)庫的配置 spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/studentscon?useSSL=false&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root
設(shè)計(jì)表和實(shí)體類
實(shí)體類對應(yīng)數(shù)據(jù)庫中的表結(jié)構(gòu)
package com.test.springbootstudy.entity; public class Student { private int id; private String name; private String password; private String sex; private int age; public Student() { } public Student(int id, String name, String password, String sex, int age) { this.id = id; this.name = name; this.password = password; this.sex = sex; this.age = age; } @Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '\'' + ", password='" + password + '\'' + ", sex='" + sex + '\'' + ", age=" + age + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
測試
@Resource // 自動注入,spring boot會幫我們實(shí)例化一個對象 private JdbcTemplate jdbcTemplate; // 一個通過JDBC連接數(shù)據(jù)庫的工具類,可以通過這個工具類對數(shù)據(jù)庫進(jìn)行增刪改查 @Test public void mySqlTest(){ String sql = "select id,name,password,sex,age from students"; List<Student> students = jdbcTemplate.query(sql, new RowMapper<Student>() { @Override public Student mapRow(ResultSet resultSet, int i) throws SQLException { Student student = new Student(); student.setId(resultSet.getInt("id")); student.setName(resultSet.getString("name")); student.setPassword(resultSet.getString("password")); student.setSex(resultSet.getString("sex")); student.setAge(resultSet.getInt("age")); return student; } }); System.out.println("查詢成功"); for(Student s : students){ System.out.println(s); } }
測試結(jié)果如下:
springboot集成mysql時報(bào)錯
在使用springboot默認(rèn)的mysql和mybatis時踩了一個坑,特此記錄
首先,新版的mysql連接驅(qū)動要用:
com.mysql.cj.jdbc.Driver
啟動后并未報(bào)錯,但是訪問的時候報(bào)以下錯誤:
java.sql.SQLException: The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
查詢原因,是由于安裝mysql的時候安裝時區(qū)不對
解決方法如下
1.在database的url后面拼上"?serverTimezone=GMT%2B8",寓意為設(shè)置服務(wù)器時區(qū)為gmt+8;
2.修改安裝文件中的my.ini,在mysqld節(jié)點(diǎn)下加上default-time-zone='+08:00'
修改完成后記得重啟服務(wù)。
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot整合logback日志的詳細(xì)步驟
這篇文章主要介紹了SpringBoot整合logback日志的詳細(xì)步驟,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05springboot整合Excel填充數(shù)據(jù)代碼示例
這篇文章主要給大家介紹了關(guān)于springboot整合Excel填充數(shù)據(jù)的相關(guān)資料,文中通過代碼示例介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用springboot具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08Java中YYYY-MM-dd與yyyy-MM-dd的區(qū)別及跨年問題
YYYY-MM-dd可能會導(dǎo)致跨年周的日期被歸屬到錯誤的年份, yyyy-MM-dd總是表示實(shí)際的日歷年份,無論日期所在的周是否跨年,本文就來介紹一下兩者的區(qū)別,感興趣的可以了解一下2024-01-01java?中如何實(shí)現(xiàn)?List?集合去重
這篇文章主要介紹了java?中如何實(shí)現(xiàn)?List?集合去重,List?去重指的是將?List?中的重復(fù)元素刪除掉的過程,下文操作操作過程介紹需要的小伙伴可以參考一下2022-05-05java實(shí)現(xiàn)系統(tǒng)捕獲異常發(fā)送郵件案例
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)系統(tǒng)捕獲異常發(fā)送郵件案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11