Springboot - это продукт, который родился для упрощения создания, работы, отладки и развертывания весенних приложений. Функция автоматической сборки позволяет нам лучше сосредоточиться на самом бизнесе, а не на внешней конфигурации XML. Нам нужно только следовать спецификациям и представить соответствующие зависимости для легко создания веб -проекта.
Операции базы данных Spring Framework глубоко инкапсулируются в JDBC. Благодаря функции впрыска зависимостей, дата данных может быть зарегистрирован в JDBCTEMPLATE, что позволяет нам легко завершить картирование объектно-релационного и помочь избежать общих ошибок. В Springboot мы можем легко использовать его.
Функции
Импорт зависимости
Добавьте зависимость от JDBCTemplate в pom.xml
<!-Spring JDBC-пакет зависимости, используя Spring-Boot-Starter-JDBC или Spring-Boot-Starter-Data-JPA, автоматически получит зависимость HikaricP-> <Depective> <groupId> org.springframework.boot </GroupId> <artifactid> Spring-boot-starter-jdbc </artifactid> </jepertinency>-mys upecler>->-->-->--mys qu-starter-jdbc </artifactid> </arderency>--mys apret-qler-jdbc </artifactid> <groupId> mySQL </GroupId> <ArtifactId> MySQL-Connector-java </artifactid> </vedyseriation> <!-Tomcat встроен в контейнер по умолчанию, если вам нужно заменить контейнер, он также очень прост-> <Depoyed> <groupid> org.spramework.boot </GroupId> <Artifactid> Spring-Boot-Starter-Web </artifactid> </vehing>
Подключиться к базе данных
Добавьте следующую конфигурацию в Application.properties. Стоит отметить, что Springboot будет автоматически настраивать DataSource по умолчанию, который будет расставлять приоритеты в использовании пула соединений HikaricP. Если нет зависимости, выберите Tomcat-JDBC. Если ни один из первых двух не доступен, выберите Commons DBCP2. Свойство Spring.datasource.type может указывать другие типы пулов соединений
spring.datasource.url = jdbc: mysql: // localhost: 3306/глава4? useUnicode = true & harementencoding = utf-8 & ZerodateTimeBehavior = convertto Null & Allingmultiqueries = true & usessl = falsespring.datasource.password = oorpring.datasource.username = root#spring.datasource.type#больше Тонкие конфигурации могут быть скорректированы с помощью следующего префикса#spring.datasource.hikari#spring.datasource.tomcat#spring.datasource.dbcp2
Начните проект, через журнал вы можете видеть, что по умолчанию вводится Hikaridatasource.
2018-05-07 10: 33: 54.021 Информация 9640 --- [Main] OsjeaAnnotationmbeanexporter: Bean с именем «DataSource» был автоматически обнаружен для JMX Expusive2018-05-07 10: 33: 54.026 info 9640 --- с JMX Server в качестве MBEAN [com.zaxxer.hikari: name = dataSource, type = hikaridatasource] 2018-05-07 10: 33: 54.071 Info 9640 --- [Main] OsBwembeddded.tomcat.tomcatwebserver: Tomcat, начатый (s): http). '' 2018-05-07 10: 33: 54.075 Информация 9640 --- [main] com.battcn.chapter4application: запустить главу 4.pplication за 3,402 секунды (JVM работает) для 3,93)
Конкретный код
После завершения базовой конфигурации выполните конкретные операции кодирования. Чтобы уменьшить количество кода, я не буду писать интерфейсы, такие как userdao и userservice. Я буду использовать JDBCTemplate непосредственно в контроллере для доступа к базе данных. Это не стандартизировано. Не учийся у меня ...
Структура таблицы
Создайте таблицу с T_USER
Создать таблицу `t_user` (` id` int (8) не null auto_increment Комментарий «Приращение первичного ключа», «username» varchar (50), а не NULL Comment «Имя пользователя», «Пароль» (50) не нулевой комментарий «Пароль», первичный ключ (`id`)) Engine = innodb deflet charse = utf8 commerm = 'uster table';
Класс сущности
пакет com.battcn.entity;/** * @author levin * @since 2018/5/7 0007 */public class user {private Long Id; частное имя пользователя; Private String Password; // todo olmit get set}Интерфейс Restful Style
пакет com.battcn.controller; import com.battcn.entity.user; import org.springframework.beans.factory.annotation.autowired; импорт org.springframework.jdbc.core.beanpropertyrowmapper; import org.spramework.jdbc.core.jdbctateTateTaTateTaTate; org.springframework.web.bind.annotation. *; import java.util.list;/** * @author levin * @since 2018/4/23 0023 */ @restcontroller @requestmapping ("/users") открытый класс Springjdbccontroller {private jdbctemplate jdbcttemptate; @Autowired public springjdbccontroller (jdbctemplate jdbctemplate) {this.jdbctemplate = jdbctemplate; } @GetMapping public list <user> QueryUsers () {// Запрос всех пользователей string sql = "select * from t_user"; return jdbctemplate.query (sql, new Object [] {}, New BeanPropertyRowMapper <> (user.class)); } @GetMapping ("/{id}") public user getUser (@pathvarable long id) {// Query String sql = "select * from t_user, где id =?"; return jdbctemplate.queryforobject (sql, new Object [] {id}, New BeanPropertyRowMapper <> (user.class)); } @Deletemapping ("/{id}") public int deluser (@pathvariable long id) {// Удалить информацию пользователя в соответствии с строкой первичного идентификатора ключа sql = "Удалить из t_user, где id =?"; return jdbctemplate.update (sql, id); } @Postmapping public int adduser (@Requestbody пользователь пользователя) {// Добавить пользовательскую строку sql = "Вставка в t_user (имя пользователя, пароль) значения (?,?)"; return jdbctemplate.update (sql, user.getusername (), user.getpassword ()); } @Putmapping ("/{id}") public int edituser (@pathvarible long id, пользователь пользователя @requestbody) {// Изменить информацию пользователя в соответствии с строкой первичного идентификатора ключа SQL = "Обновление t_user set username =?, Пароль =? Где идентификатор =?"; return jdbctemplate.update (sql, user.getusername (), user.getpassword (), id); }}тест
Поскольку вышеуказанный интерфейс представляет собой интерфейс в спокойствии, добавление и модификация не могут быть завершены через браузер, нам нужно написать сами Junit или использовать такие инструменты, как почтальон.
Создать модульный тест Глава 4PPLICATIONTSTS и моделируйте операции запроса, такие как GET, POST, POT, DELETE и т. Д. через TestRestTemplate
пакет com.battcn; import com.battcn.entity.user; import org.junit.test; import org.junit.runner.runwith; import org.slf4j.logger; import org.slf4j.loggerfactory; импорт org.spramework.beans.factory.annotation org.springframework.boot.test.context.springboottest; импорт org.springframework.boot.test.web.client.testresttemplate; импорт org.springframework.boot.web.server.localserport; импорт org.spramework.core.parameterse. org.springframework.http.httpmethod; import org.springframework.http.responseentity; import org.springframework.test.context.junit4.springrunner; import java.util.list;/** * @author levin */@runwith (springrunner.list. = Глава4Application.class, webenvironment = springboottest.webenvironment.random_port) открытый класс Глава4ApplicationTests {Private Static Final Logger = loggerFactory.getLogger (глава4ApplicationTests.class); @Autowired частный шаблон TestRestTemplate; @Localserverport private int port; @Test public void test1 () throws exection {template.postforentity ("http: // localhost:" + port + "/users", новый пользователь ("user1", "pass1"), integer.class); log.info ("[[добавить пользовательский успех]/n"); // todo Если это возвращаемая коллекция, используйте обмен вместо GetForentity, которая должна заставить тип ответа <list <user >> response2 = template.exchange ("http: // localhost:" + port + "/users", httpmethod.get, null, newareterizedtypereference <list <list >> () {}); Окончательный список <user> body = response2.getbody (); log.info ("[Query All] - [{}]/n", body); Long userid = body.get (0) .getid (); Responseentity <user> response3 = template.getForentity ("http: // localhost:" + port + "/user/{id}", user.class, userId); log.info ("[primary Key Query] - [{}]/n", response3.getbody ()); tomplate.put ("http: // localhost:" + port + "/user/{id}", новый пользователь ("user11", "pass11"), userid); log.info ("[изменить пользователь успешно]/n"); template.delete ("http: // localhost:" + port + "/user/{id}", userid); log.info ("[Удалить пользователя успешно]"); }}Суммировать
В этой главе представлены несколько обычно используемых операций JDBCTEMPLATE. Для получения подробной информации, пожалуйста, обратитесь к документации JDBCTemplate API.
Многие Bigwigs написали учебные пособия о Springboot. Если есть какое -либо сходство, пожалуйста, простите меня. Этот учебник основан на последнем уровне Spring-Boot-Starter-Parent: 2.0.1.1