Нравится и смотрите снова, и вырабатывайте привычку.
Сообщение: Иногда будут сильные ветры и волны, и паруса будут висеть прямо в море. Эта статья была включена вGitHub.com/Открыть сейчас/-B…Приглашаем всех к звезде, вместе учимся и вместе добиваемся прогресса. Если в статье есть ошибки, укажите на них. На более позднем этапе маршрут и совместное использование ресурсов внешнего обучения будут запланированы на GitHub.
предисловие
Изучив предыдущую главу, мы получили простое введение в SpringBoot. Далее мы подробно изучим SpringBoot. Мы знаем, что большая часть данных любого веб-сайта является динамической, то есть данные извлекаются из базы данных. , и нестатические данные, то наш следующий шаг — подключиться к базе данных.Теперь типы баз данных, которые мы часто используем, можно условно разделить на два типа: реляционные базы данных и нереляционные базы данных.
- База данных MySQL, база данных Oracle, база данных SQL Server и т. д. являются реляционными базами данных.
- Redis, Mongodb и т. д. — все это нереляционные базы данных.
Цели этой главы
-
Используйте SpringBoot и MyBatis для управления базой данных с помощью аннотаций.
-
Использование SpringBoot и MyBatis для управления базой данных через файлы конфигурации XML.
Строительство проекта
1. Откройте идею и выберите «Создать новый проект».
2. Выберите Spring Initializer, затем нажмите «Далее».
3. Заполните организацию, координаты и другую информацию, а затем нажмите Далее.
4. Выберите Зависеть от Интернета, затем установите флажок Веб, а затем нажмите кнопку Далее, пока проект не будет построен.
5. После того, как структура проекта настроена, мы создаем несколько новых каталогов, которые делятся на уровень управления, сервисный уровень, уровень доступа к данным и уровень объекта, Полная структура выглядит следующим образом:
6. Поскольку мы хотим использовать MyBatis для работы с базой данных, нам нужно добавить некоторые зависимости.Полный файл pom.xml выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.demo02</groupId>
<artifactId>demo_02</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo_02</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatis-spring适配器-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!--mysql驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Связанные с базой данных
1. Далее нам нужно создать новую базу данных и генерировать сущности.Я не буду повторять создание данных.Поговорим об использовании идеи для быстрой генерации сущностей (Товаров).Скрипт базы данных выглядит следующим образом:
#创建商品信息表
create table product
(
pid int primary key not null auto_increment COMMENT"商品编号",
pname varchar(50) COMMENT"商品名称",
pprice DECIMAL(10,2) COMMENT"商品价格",
ptime varchar(50) COMMENT"入库时间",
pcount int COMMENT"库存",
pstatus int COMMENT"商品状态" #0 代表下架,1代表上架
)COMMENT"商品信息表"
insert into product(pname,pprice,ptime,pcount,pstatus)VALUES
("苹果",11,"2019-10-1",11,1)
SELECT * from product
2. База данных указывает имя подключаемой базы данных, Пользователь указывает имя пользователя, Пароль указывает пароль, затем нажмите «ОК», а затем выберите каталог, из которого вы хотите создать объект.После завершения создания базовая структура настроен.
3. Код объекта продукта выглядит следующим образом.
package com.ssm.entity;
/*
* 商品实体类
* */
public class Product {
private long pid;//编号
private String pname;//名称
private double pprice;//价格
private String ptime;//入库时间
private long pcount;//数量
private long pstatus;//状态
//无参构造方法
public Product() {}
//带参构造方法
public Product(long pid, String pname, double pprice, String ptime, long pcount, long pstatus) {
this.pid = pid;
this.pname = pname;
this.pprice = pprice;
this.ptime = ptime;
this.pcount = pcount;
this.pstatus = pstatus;
}
public long getPid() {
return pid;
}
public void setPid(long pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public double getPprice() {
return pprice;
}
public void setPprice(double pprice) {
this.pprice = pprice;
}
public String getPtime() {
return ptime;
}
public void setPtime(String ptime) {
this.ptime = ptime;
}
public long getPcount() {
return pcount;
}
public void setPcount(long pcount) {
this.pcount = pcount;
}
public long getPstatus() {
return pstatus;
}
public void setPstatus(long pstatus) {
this.pstatus = pstatus;
}
@Override
public String toString() {
return "Product{" +
"pid=" + pid +
", pname='" + pname + '\'' +
", pprice=" + pprice +
", ptime='" + ptime + '\'' +
", pcount=" + pcount +
", pstatus=" + pstatus +
'}';
}
}
SpringBoot интегрирует MyBatis на основе аннотаций
1. Далее нам нужно настроить файл конфигурации для подключения к базе данных, и настроить его в application.xml Файл application.xml выглядит следующим образом:
#连接数据库的驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#连接数据库的url
spring.datasource.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
#用户名
spring.datasource.username=root
#密码
spring.datasource.password=123456
2. Теперь мы можем управлять базой данных, писать ProductDao, ProductService, ProductImple, ProductController и настраивать основную программу SpringBoot.
Уведомление:
Поскольку наш вновь созданный пакет находится не в том же каталоге, что и основная программа SpringBoot, его нельзя просканировать. Когда проект запускается, его можно сканировать только в пакете, в котором находится @SpringBootApplication.Класс запуска — MainApplication.java, который является пакетом, в котором находится класс MainApplication.java, а другие контроллеры, сервисы и мапперы — в других пакеты, поэтому они не не сканируются. Поэтому нам нужно его настроить.
Файл ProductDao выглядит следующим образом:
package com.ssm.dao;
import com.ssm.entity.Product;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface ProductDao {
@Select("select * from product")
List<Product> findAllProduct();
}
Файл ProductService выглядит следующим образом:
package com.ssm.service;
import com.ssm.entity.Product;
import java.util.List;
public interface ProductService {
List<Product> findAllProduct();
}
Файл ProductImple выглядит следующим образом:
package com.ssm.service.imple;
import com.ssm.dao.ProductDao;
import com.ssm.entity.Product;
import com.ssm.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProductImple implements ProductService {
@Autowired
private ProductDao productDao;
@Override
public List<Product> findAllProduct() {
return productDao.findAllProduct();
}
}
Файл ProductController выглядит следующим образом:
package com.ssm.controller;
import com.ssm.entity.Product;
import com.ssm.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class ProductController {
@Autowired
private ProductService productService;
//查询全部的商品信息
@GetMapping("/product")
public List<Product> findAllProduct(){
return productService.findAllProduct();
}
}
Основной файл программы SpringBoot выглядит следующим образом:
package com.demo02.demo_02;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan(basePackages = {"com.ssm.controller","com.ssm.service"})
@MapperScan(basePackages = {"com.ssm.dao"})
public class Demo02Application {
public static void main(String[] args) {
SpringApplication.run(Demo02Application.class, args);
}
}
Нажмите «Выполнить», введите в адресной строке localhost:8080/product, появится следующий результат, поздравляем.
SpringBoot интегрирует MyBatis на основе файлов конфигурации XML.
1. Работаем теперь с БД вторым способом.Сначала аннотируем все конфигурационные файлы в application.xml, а потом создаем новый application.yml.Зачем использовать этот формат? Поскольку этот метод удобен и лаконичен, официальный представитель также рекомендует нам использовать этот тип.Вот некоторые связанные форматы:
server:
port: 8801
eureka:
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://localhost:8801/eureka/
2.application.yml настроен следующим образом:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm?characterEncoding=utf-8
username: root
password: 123456
mybatis:
typeAliasesPackage: com.ssm.entity
mapperLocations: classpath:mapper/*Mapper.xml
3. Мы хотим работать с базой данных через формат xml, то есть нам нужно написать файл Mapper.xml, создать новую папку Mapper в src/main/resources, а затем создать новый ProductMapper.xml.
4. Файл ProductMapper.xml выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ssm.dao.ProductDao">
<!--查询全部商品信息-->
<select id="findAllProduct" resultType="product">
select * from product
</select>
</mapper>
5. Файл ProductDao выглядит следующим образом:
package com.ssm.dao;
import com.ssm.entity.Product;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface ProductDao {
// @Select("select * from product")
List<Product> findAllProduct();
}
6.Файл ProductService выглядит следующим образом:
package com.ssm.service;
import com.ssm.entity.Product;
import java.util.List;
public interface ProductService {
List<Product> findAllProduct();
}
7. Файл ProductImple выглядит следующим образом:
package com.ssm.service.imple;
import com.ssm.dao.ProductDao;
import com.ssm.entity.Product;
import com.ssm.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProductImple implements ProductService {
@Autowired
private ProductDao productDao;
@Override
public List<Product> findAllProduct() {
return productDao.findAllProduct();
}
}
8. Файл ProductController выглядит следующим образом:
package com.ssm.controller;
import com.ssm.entity.Product;
import com.ssm.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class ProductController {
@Autowired
private ProductService productService;
//查询全部的商品信息
@GetMapping("/product")
public List<Product> findAllProduct(){
return productService.findAllProduct();
}
}
9. Основной программный файл SpringBoot выглядит следующим образом:
package com.demo02.demo_02;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan(basePackages = {"com.ssm.controller","com.ssm.service"})
@MapperScan(basePackages = {"com.ssm.dao"})
public class Demo02Application {
public static void main(String[] args) {
SpringApplication.run(Demo02Application.class, args);
}
}
10. Запускаем, результат такой же как и раньше
конец
Если вы считаете, что эта статья полезна для вас, пожалуйста, поставьте лайк автору.
Ян Цзянь, этот теплый мужчина:действительно очень полезно, ваша поддержка станет для меня движущей силой для продолжения написания статей, увидимся в следующей статье.
[Оригинал] | Эрланг Шэнь Ян Цзянь
Нелегко быть оригинальным, не будь проституткой. Эрлангшен Ян Цзянь, гребец-программист, который изо всех сил пытается выжить на переднем крае Интернета, занимается фронтенд-разработкой и хорош в обмене технологиями. Если вам нужно перепечатать, пожалуйста, свяжитесь с автором или сохраните исходную ссылку.Удобнее искать Erlangshen Yang Jian в публичном аккаунте WeChat или сканировать QR-код ниже.
Давайте станем свидетелями роста Erlang Shen Yang Jian! Больше хороших статей и обмена технологиями доступны в публичном аккаунте ниже. Добро пожаловать, чтобы обратить внимание.