前言
我們已經學習了如何通過IDEA創(chuàng)建一個簡單的springboot helloworld了,那么springboot如何連接mysql呢?
幾種方式
Spring為各種支持的持久化技術,都提供了簡單操作的模板和回調,目前大概有如下幾種
| ORM持久化技術 | 模板類 |
|---|---|
| JDBC | org.springframework.jdbc.core.JdbcTemplate |
| Hibernate | org.springframework.orm.hibernate.HibernateTemplate |
| IBatis | org.springframework.orm.ibatis.SqlMapClientTemplate |
| JPA | org.springfrmaework.orm.jpa.JpaTemplate |
目前比較通用流行的做法是使用mybatis,這里我們簡單的介紹下JPA的方式,因為它使用的也不少,后續(xù)的教程很多都是基于mybatis或mybatis-plus的,所以這邊不多介紹。至于其它的方式,有時間我再補上。
創(chuàng)建空項目
首先我們使用IDEA創(chuàng)建一個基礎的springboot2.0的項目(創(chuàng)建的過程略,可以參考前幾章),無需加載任何依賴(依賴還是手動加載感悟更深)。
添加依賴
編輯pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
如圖

1.png
添加配置
更改application.properties為application.yml,添加內容:
spring:
datasource:
url: jdbc:mysql://192.168.145.131:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
建庫
創(chuàng)建名為test的數(shù)據(jù)庫,建表執(zhí)行
CREATE TABLE `person` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `person` VALUES ('1', '1', '1');
INSERT INTO `person` VALUES ('2', '2', '2');
INSERT INTO `person` VALUES ('3', '3', '3');
INSERT INTO `person` VALUES ('4', '4', '4');
INSERT INTO `person` VALUES ('5', '5', '5');
INSERT INTO `person` VALUES ('6', '6', '6');
INSERT INTO `person` VALUES ('7', '7', '7');
INSERT INTO `person` VALUES ('8', '8', '8');
INSERT INTO `person` VALUES ('9', '9', '9');
INSERT INTO `person` VALUES ('10', '10', '10');
INSERT INTO `person` VALUES ('11', '11', '11');
完善
創(chuàng)建controller、entity和service的package,并創(chuàng)建對應的類文件,目錄如下

2.png
controller/PersonController:
package com.mrcoder.sbjpa.controller;
import com.mrcoder.sbjpa.entity.Person;
import com.mrcoder.sbjpa.service.PersonRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class PersonController {
@Autowired
private PersonRepository personRepository;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public List<Person> getPersonList(){
return personRepository.findAll();
}
}
entity/Person:
package com.mrcoder.sbjpa.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Person {
@Id
@GeneratedValue
@Column(nullable = true)
private String name;
@Column(nullable = true)
private int age;
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age + '}';
}
}
service/PersonRepository:
package com.mrcoder.sbjpa.service;
import com.mrcoder.sbjpa.entity.Person;
import org.springframework.data.jpa.repository.JpaRepository;
public interface PersonRepository extends JpaRepository<Person, Long> {
}
運行

3.png
項目地址
https://github.com/MrCoderStack/SpringBootDemo/tree/master/sb-jpa
https://gitee.com/MrCoderStack/SpringBootDemo/tree/master/sb-jpa
請關注我的訂閱號

訂閱號.png