Часть 1.Бой Spring Boot (1): всего два шага! Eclipse+Maven быстро создает первый проект Spring BootБыл построен проект Spring Boot, на его основе в этой статье для подключения к базе данных MySQL используется Hibernate.
1. Добавьте зависимости в pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2. application.properties добавить конфигурацию базы данных
spring.datasource.url=jdbc:mysql://localhost:3306/spring_boot?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql= true
Если подключение к базе данных записано как spring.datasource.url=jdbc:mysql://localhost:3306/spring_boot, Из-за проблемы с версией MySQL могут быть следующие ошибки, добавьте «?serverTimezone=GMT%2B8» сзади, установите часовой пояс и решите.
设置驱动,spring.datasource.driver-class-name=com.mysql.jdbc.Driver会有下面红色的警告信息。 верноcom.mysql.jdbc.Driver
Устарело, используйте новый драйверcom.mysql.cj.jdbc.Driver1
, изменился наcom.mysql.cj.jdbc.Driver
После этого все работает нормально.
Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
3. Добавьте класс сущности
@Entity представляет класс сущности, @Table(name="user") используется для соответствия таблице использования в базе данных, @Id используется для выражения первичного ключа, а @Column(name="id") используется для указания атрибута id.
@GeneratedValue автоматически увеличивает первичный ключ. Если у вас есть какие-либо вопросы, обратитесь кАнализ исходного кода @GeneratedValue.
package com.example.demo.domain;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
@Column(name = "username")
private String userName;
@Column(name = "password")
private String passWord;
public User() {
super();
}
public User(String userName, String passWord) {
super();
this.userName = userName;
this.passWord = passWord;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
4. Добавьте Дао
Слой Dao в основном используется для добавления, удаления, проверки и изменения базы данных. Dao нужно только наследовать класс JpaRepository, почти не нужно писать методы, и он может автоматически генерировать SQL в соответствии с именем метода.Например, findByUserName автоматически сгенерирует метод запроса с userName в качестве параметра.
package com.example.demo.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.domain.User;
public interface UserRepository extends JpaRepository<User, Long> {
User findByUserName(String userName);
}
5. Добавьте контроллер
package com.example.demo.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.dao.UserRepository;
import com.example.demo.domain.User;
@RestController
@RequestMapping("user")
public class UserController {
@Autowired
private UserRepository userRepository;
@RequestMapping("/getAllUser")
@ResponseBody
public List<User> findAll() {
List<User> list = new ArrayList<User>();
list = userRepository.findAll();
return list;
}
@RequestMapping("/getByUserName")
@ResponseBody
public User getByUserName(String userName) {
User user = userRepository.findByUserName(userName);
return user;
}
}
Схема структуры проекта после добавления файлов в проект:
6. Создайте новую базу данных
новая база данныхmysql://localhost:3306/spring_bootЭто должно быть следующим шагом. Hibernate Хотя он автоматически создаст новую таблицу, но все еще должен вручную встроить базу данных.
Используйте Navicat для создания новой локальной базы данных, щелкните правой кнопкой мыши имя подключения -> Новая база данных -> Заполните информацию о базе данных -> ОК.
В пользовательскую таблицу вставьте два тестовых данных:
7. Тест
Стартовый проект. Отправьте запрос с Postman для тестирования: