springboot如何集成mysql
springboot集成mysql
引入依賴
在pom文件中加入如下依賴:
<!--集成mysql數(shù)據(jù)庫(kù)--> <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ù)庫(kù)配置
在spring boot項(xiàng)目的配置文件 application.properties
中添加如下配置:
#集成mysql數(shù)據(jù)庫(kù)的配置 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í)體類對(duì)應(yīng)數(shù)據(jù)庫(kù)中的表結(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; } }
測(cè)試
@Resource // 自動(dòng)注入,spring boot會(huì)幫我們實(shí)例化一個(gè)對(duì)象 private JdbcTemplate jdbcTemplate; // 一個(gè)通過(guò)JDBC連接數(shù)據(jù)庫(kù)的工具類,可以通過(guò)這個(gè)工具類對(duì)數(shù)據(jù)庫(kù)進(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); } }
測(cè)試結(jié)果如下:
springboot集成mysql時(shí)報(bào)錯(cuò)
在使用springboot默認(rèn)的mysql和mybatis時(shí)踩了一個(gè)坑,特此記錄
首先,新版的mysql連接驅(qū)動(dòng)要用:
com.mysql.cj.jdbc.Driver
啟動(dòng)后并未報(bào)錯(cuò),但是訪問(wèn)的時(shí)候報(bào)以下錯(cuò)誤:
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.
查詢?cè)颍怯捎诎惭bmysql的時(shí)候安裝時(shí)區(qū)不對(duì)
解決方法如下
1.在database的url后面拼上"?serverTimezone=GMT%2B8",寓意為設(shè)置服務(wù)器時(shí)區(qū)為gmt+8;
2.修改安裝文件中的my.ini,在mysqld節(jié)點(diǎn)下加上default-time-zone='+08:00'
修改完成后記得重啟服務(wù)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決dubbo錯(cuò)誤ip及ip亂入問(wèn)題的方法
今天小編就為大家分享一篇關(guān)于解決dubbo錯(cuò)誤ip及ip亂入問(wèn)題的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03SpringBoot整合logback日志的詳細(xì)步驟
這篇文章主要介紹了SpringBoot整合logback日志的詳細(xì)步驟,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05springboot整合Excel填充數(shù)據(jù)代碼示例
這篇文章主要給大家介紹了關(guān)于springboot整合Excel填充數(shù)據(jù)的相關(guān)資料,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用springboot具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08java合成模式之神奇的樹(shù)結(jié)構(gòu)
這篇文章主要介紹了java合成模式,文中運(yùn)用大量的代碼進(jìn)行詳細(xì)講解,希望大家看完本文后能學(xué)習(xí)到相關(guān)的知識(shí),需要的朋友可以參考一下2021-08-08Java中YYYY-MM-dd與yyyy-MM-dd的區(qū)別及跨年問(wèn)題
YYYY-MM-dd可能會(huì)導(dǎo)致跨年周的日期被歸屬到錯(cuò)誤的年份, yyyy-MM-dd總是表示實(shí)際的日歷年份,無(wú)論日期所在的周是否跨年,本文就來(lái)介紹一下兩者的區(qū)別,感興趣的可以了解一下2024-01-01java?中如何實(shí)現(xiàn)?List?集合去重
這篇文章主要介紹了java?中如何實(shí)現(xiàn)?List?集合去重,List?去重指的是將?List?中的重復(fù)元素刪除掉的過(guò)程,下文操作操作過(guò)程介紹需要的小伙伴可以參考一下2022-05-05java實(shí)現(xiàn)系統(tǒng)捕獲異常發(fā)送郵件案例
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)系統(tǒng)捕獲異常發(fā)送郵件案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11