spring-boot
Spring-Boot + JDBC
Поиск…
Вступление
Spring Boot может использоваться для создания и сохранения SQL Relational DataBase. Вы можете подключиться к базе данных H2 в памяти с использованием Spring Boot или, возможно, выбрать подключение к MySql DataBase, это ваш выбор. Если вы хотите проводить операции CRUD с вашей БД, вы можете сделать это с помощью JdbcTemplate bean, этот компонент будет автоматически предоставлен Spring Boot. Spring Boot поможет вам, предоставив автоматическую настройку некоторых часто используемых компонентов, связанных с JDBC.
замечания
Чтобы начать работу, в своем затмении sts перейдите к новому -> Spring Starter Project -> заполните ваши координаты Maven -> и добавьте следующие зависимости:
На вкладке SQL -> добавить JDBC + добавить MySql (если MySql - ваш выбор).
Для Mysql вам также потребуется добавить Java-коннектор MySql.
В файле Spring Boot application.properties (файл конфигурации Spring Boot) вам необходимо настроить учетные данные источника данных в MySql DB:
- spring.datasource.url
- spring.datasource.username
- spring.datasource.password
- -Имя-класса spring.datasource.driver
например:
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
В папке ресурсов добавьте следующие два файла:
schema.sql -> каждый раз, когда вы запускаете приложение Spring Boot запускает этот файл, внутри него вы должны написать свою схему БД, определить таблицы и их отношения.
data.sql -> каждый раз при запуске приложения Spring Boot запускает этот файл, внутри него вы можете записать данные, которые будут вставлены в вашу таблицу в качестве начальной инициализации.
Spring Boot предоставит вам JdbcTemplate bean автоматически, чтобы вы могли мгновенно использовать его следующим образом:
@Autowired
private JdbcTemplate template;
без каких-либо других конфигураций.
Файл schema.sql
CREATE SCHEMA IF NOT EXISTS `backgammon`;
USE `backgammon`;
DROP TABLE IF EXISTS `user_in_game_room`;
DROP TABLE IF EXISTS `game_users`;
DROP TABLE IF EXISTS `user_in_game_room`;
CREATE TABLE `game_users`
(
`user_id` BIGINT NOT NULL AUTO_INCREMENT,
`first_name` VARCHAR(255) NOT NULL,
`last_name` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL UNIQUE,
`user_name` VARCHAR(255) NOT NULL UNIQUE,
`password` VARCHAR(255) NOT NULL,
`role` VARCHAR(255) NOT NULL,
`last_updated_date` DATETIME NOT NULL,
`last_updated_by` BIGINT NOT NULL,
`created_date` DATETIME NOT NULL,
`created_by` BIGINT NOT NULL,
PRIMARY KEY(`user_id`)
);
DROP TABLE IF EXISTS `game_rooms`;
CREATE TABLE `game_rooms`
(
`game_room_id` BIGINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`private` BIT(1) NOT NULL,
`white` BIGINT DEFAULT NULL,
`black` BIGINT DEFAULT NULL,
`opened_by` BIGINT NOT NULL,
`speed` BIT(3) NOT NULL,
`last_updated_date` DATETIME NOT NULL,
`last_updated_by` BIGINT NOT NULL,
`created_date` DATETIME NOT NULL,
`created_by` BIGINT NOT NULL,
`token` VARCHAR(255) AS (SHA1(CONCAT(`name`, "This is a qwe secret 123", `created_by`, `created_date`))),
PRIMARY KEY(`game_room_id`)
);
CREATE TABLE `user_in_game_room`
(
`user_id` BIGINT NOT NULL,
`game_room_id` BIGINT NOT NULL,
`last_updated_date` DATETIME NOT NULL,
`last_updated_by` BIGINT NOT NULL,
`created_date` DATETIME NOT NULL,
`created_by` BIGINT NOT NULL,
PRIMARY KEY(`user_id`, `game_room_id`),
FOREIGN KEY (`user_id`) REFERENCES `game_users`(`user_id`),
FOREIGN KEY (`game_room_id`) REFERENCES `game_rooms`(`game_room_id`)
);
Первое загрузочное приложение JdbcTemplate
@SpringBootApplication
@RestController
public class SpringBootJdbcApplication {
@Autowired
private JdbcTemplate template;
@RequestMapping("/cars")
public List<Map<String,Object>> stocks(){
return template.queryForList("select * from car");
}
public static void main(String[] args) {
SpringApplication.run(SpringBootJdbcApplication.class, args);
}
}
data.sql
insert into game_users values(..., ..., ..., ...);
insert into game_users values(..., ..., ..., ...);
insert into game_users values(..., ..., ..., ...);