предисловиеSpringbootДля уровня доступа к данным либоSQLещеNOSQL,Spring BootНижний слойSpring Dataобрабатываются в едином порядке. Spring Data — известный проект на том же уровне, что и Spring Boot и Spring Cloud в семействе Spring. Чтобы лучше понять Sping Data, вы можете обратиться к официальному сайту Sping Data:spring.IO/проекты/билеты…
На самом деле интеграция jdbc с Springboot в основном не используется предприятиями, но зачем вам ее изучать? Почему я снова пишу такую статью? Это также очень просто, как и программа HelloWorld.В конце концов, jdbc является самой базовой основой для подключения к базе данных.Не забывайте об основе, придавайте большое значение основе и не забывайте о первоначальном намерении.
1. Создайте среду проекта jdbc
Проверить при созданииWeb,jdbc,MySQLЭто
pom.xmlПо умолчанию файл будет иметь следующие зависимости:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<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>
После того, как вышеизложенное настроено, как мне написать его для доступа к базе данных? На самом деле в SpringBoot нам нужна только простая конфигурация для подключения к базе данных;
2. Напишите файл конфигурации
В файле конфигурации application.yml пропишите соединение общей конфигурации jdbc
spring:
datasource:
username: root
url: jdbc:mysql://localhost:3306/ufida
password: 123456
driver-class-name: com.mysql.jdbc.Driver
В версии springboot2.X, еслиspring.datasource.urlЕсли часовой пояс не указан, следует сообщатьSQLExceptionошибка
url: jdbc:mysql://localhost:3306/ufida?serverTimezone=UTC
Одно замечание: я использую MySQL версии 5.7:
3, тестовый тестовый класс
@SpringBootTest
class JdbcbootApplicationTests {
//第一步:DI注入数据源
@Autowired
DataSource dataSource;
@Test
void contextLoads() throws SQLException {
//第二步:测试代码
System.out.println("默认使用的数据源:" + dataSource.getClass());
Connection connection = dataSource.getConnection();
System.out.println("获取的连接:" + connection);
connection.close();
}
}
class com.zaxxer.hikari.HikariDataSource, Мы не настраивали это вручную. Вот, это пробудило ваше любопытство~ Я не знаю, любопытно ли вам, в любом случае, Ичунь очень любопытен~, поэтому все автоматические настройки источника данных, найденного глобальным поиском, находятся в :DataSourcePropertiesПод файлом, не спрашивайте меня, откуда я знаю, что он под этим файлом, дайте картинку, и вы будете знать столько же, сколько и яcom.zaxxer.hikari.HikariDataSourceИсточники данных и предыдущие версии, такие какSpring Boot 1.5Использовать по умолчаниюorg.apache.tomcat.jdbc.pool.DataSourceКак источник данных, так как причина тоже очень проста, слышалHikariDataSourceВ настоящее время это самый быстрый источник данных.По сравнению с традиционными пулами соединений, такими как C3P0, DBCP, Tomcat jdbc и т. д., он более «хитрый», поэтому Springboot использует его в качестве источника данных по умолчанию.
Поскольку это автоматическая конфигурация, в соответствии с процедурой Springboot предполагается, что существуетDataSourceXXXAutoConfigurationМатериал, сделайте глобальный поиск,
DataSourceAutoConfigurationкласс, давай войдем и прогуляемсяspring.datasource.typeУкажите пользовательский тип источника данных, значение должно использовать полное имя реализации пула соединений. По умолчанию он автоматически обнаруживается из пути к классам, а исходный код выглядит следующим образом:
@Configuration
@ConditionalOnMissingBean({DataSource.class})
@ConditionalOnProperty(
name = {"spring.datasource.type"}
)
static class Generic {
Generic() {
}
@Bean
public DataSource dataSource(DataSourceProperties properties) {
return properties.initializeDataSourceBuilder().build();
}
}
ХОРОШО,DataSourceAutoConfigurationИсходный код увидит это, конкретный вы можете просмотреть.
4, принцип автоматической настройки JdbcTemplate
иметь источник данныхHikariDataSourceполучить соединение с базой данныхjava.sql.Connection, с соединением это эквивалентно использованию соединения и собственных операторов JDBC для работы с базой данных дляcrud, думаю, в этот момент я подумаю о JdbcTemplate, ведь хорошими вещами нужно пользоваться разумно!
Здесь не разрешено использовать сторонний фреймворк для работы с базами данных MyBatis, ведь Spring сам сделал облегченную инкапсуляцию нативного JDBC.org.springframework.jdbc.core.JdbcTemplate.
Поскольку это автоматическая конфигурация, мы должны подумать оJdbcTemplateПринцип автоконфигурации зависит отorg.springframework.boot.autoconfigure.jdbcПод пакетом, что неудивительно, в пакете действительно естьJdbcTemplateAutoConfigurationДобрый. следующим образом
5. Тест CRUD после того, как Springboot интегрирует jdbc
Поскольку вы можете использовать jdbcTemplate, вы можете использовать его. Не забудьте автоматически внедрить его следующим образом.
@Autowired
JdbcTemplate jdbcTemplate;
Что касается кода CRUD, то он здесь описываться не будет, в этой статье в основном исследуется принцип встроенной в Springboot автоматической настройки jdbc. Независимо от того, какой фреймворк вы изучаете, речь идет не об изучении конфигурации, а, что более важно, о мышлении!
Если эта статья хоть немного вам поможет, то ставьте лайк, спасибо~
Наконец, если есть какие-либо недостатки или неточности, добро пожаловать на исправления и критику, большое спасибо! Если у вас есть какие-либо вопросы, пожалуйста, оставьте сообщение и ответьте как можно скорее!
Приглашаю всех обратить внимание на мою официальную учетную запись, там есть некоторые учебные материалы по Java и большая волна электронных книг по Java, таких как всесторонняя виртуальная машина Java г-на Чжоу Чжимина, идеи программирования Java, тома основных технологий, большой разговор о дизайне. паттерны, борьба с параллельным программированием на Java... .. Это все библия Java, не говоря уже о том, чтобы садиться в машину Tomcat, поехали! Самое главное — вместе обсуждать технологии, тосковать по технологиям, заниматься технологиями, а когда они согласованы, это друг по горшку…