华清远见-重庆中心-框架阶段技术总结/知识点梳理

框架

一套规范。

实际是他人实现的一系列接口和类的集合。通入导入对应框架的jar文件(maven项目导入对应的依赖),进行适当的配置,就能使用其中的所有内容。

开发者可以省去很多模板代码,如dao中的CRUD,MVC模式下层与层之间的关联。只需要集中精力实现项目中的业务逻辑部分。

Java主流框架

Spring、SpringMVC、MyBatis、MyBatisPlus、Hibernate、JPA等。

SSH:最初是Spring+Stucts2+Hibernate组成,之后Stucts2被SpringMVC取代。

SSM:Spring+SpringMVC+MyBatis

新项目使用SpringBoot,早起的SSH项目由于维护成本高,基本不会推翻重做,但会维护一些SSM项目。

无论是SSH还是SSM,Spring、SpringMVC必不可少。从2004年推出至今,依旧是主流框架中不可获取的一部分。

我把我总结的分为几个部分

1spring

1.创建一个普通的Maven项目,不选择模板
2.添加Spring核心依赖

<!-- spring-context表示spring核心容器 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>5.3.23</version>

</dependency>

3.创建一个Java类
4.创建Spring配置文件

创建一个Spring的配置文件,在其中注入上一步创建的类的对象

在resources目录下,创建一个xml文件,选择spring config,通常命名为application

5.创建main方法所在类

解析Spring配置文件,获取注入的对象。

属性注入

给某个bean添加属性的方式有两种:构造器注入和setter注入

setter注入

这种方式注入属性时,类中必须要有set方法

在bean标签中,加入<property></property>标签,

该标签的name属性通常表示该对象的某个属性名,但实际是setXXX()方法中的XXX单词。

如有age属性,但get方法为getNianLing(),name属性就需要写成nianLing。

该标签的value属性表示给该类中的某个属性赋值,该属性的类型为原始类型或String。

该标签的ref属性表示给该类中除String以外的引用类型属性赋值,值为Spring容器中另一个bean的id。

构造方法注入

这种方式注入属性时,类中必须要有相应的构造方法

在bean标签中,加入<constructor-arg></constructor-arg>标签,

该标签的name属性表示构造方法的参数名,index属性表示构造方法的参数索引。

赋值时,原始类型和字符串用value,引用类型用ref。

属性自动注入autowire

这个比较重要

autowire属性的值

类中要有被注入的属性的setter()方法

被自动注入的对象可以没有id

Spring容器中,某个对象的类型要与该setter()方法的参数类型一致,且容器中只有一个该类型的对象。

如setCar(Car c),Spring就会自动在容器中寻找类型为Car的对象自动装配

类中要有被注入的属性的setter()方法

被自动注入的对象必须要有id

实际是根据setXXX()方法set后的单词XXX关联

如setCar(Car c),Spring就会自动在容器中寻找id为car的对象自动装配

在Web项目中,可以利用自动装配,在控制层中自动装配业务逻辑层的对象,在业务逻辑层中自动装配数据访问层的对象。

Spring核心注解

在Spring配置文件中加入

<!--设置要扫描的包,扫描这个包下所有使用了注解的类-->

<context:component-scan base-package="com.hqyj.spring02.bookSystem"></context:component-scan>

类上加的注解

@Component

当一个类不好归纳时,定义为普通组件

@Controller

定义一个类为控制层组件

@Service

定义一个类为业务层组件

@Repository

定义一个类为持久层(数组访问层)组件

@Lazy/@Lazy(value=true)

设置该类为懒加载。

@Scope(value="singleton/prototype")

设置为单例/原型模式。

说明

以上注解公共特点

都是将对应类的对象注入到Spring容器中,用于替换配置文件中的bean标签

都默认是单例模式非懒加载

默认注入的对象id为当前类的类名首字母小写形式

如在BookDao类上添加,id默认为bookDao

可以通过注解的value属性自定义注入的对象的id名,如@Component(value="key")表示注入的对象id为key

属性上加的注解

配合@Autowired注解,使用byName方式获取某个对象id的bean进行装配

说明

在Web项目中使用Spring

1.创建基于Maven的web-app项目
2.添加依赖

<!--servlet-->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>4.0.1</version>

</dependency>

<!--spring容器-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>5.3.23</version>

</dependency>

<!--web集成spring-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>5.3.23</version>

</dependency>

3.在main目录下创建java和resources目录,修改web.xml版本为4.0
4.在resources目录下创建Spring配置文件application.xml,扫描使用了注解的根包

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context " target="_blank">https://www.springframework.org/schema/context/spring-context.xsd">

<!--扫描使用了Spring注解的根包-->

<context:component-scan base-package="com.hqyj.springweb"></context:component-scan>

</beans>

5.创建一个类,使用@Componet注解将其注入到Spring容器中

package com.hqyj.springweb.entity;

import org.springframework.stereotype.Component;

@Component

public class Pojo {

public void fun(){

System.out.println("hello springweb!");

}

}

如何初始化Spring容器(解析Spring配置文件)

在控制台应用程序中,可以在main方法中通过ClassPathXmlApplicationContext来解析Spring配置文件,初始化Spring容器。

在web项目中没有main方法,只有servlet中的service方法,如果在service方法中创建ClassPathXmlApplicationContext对象,会每次访问都执行。

而Spring容器只需初始化一次,在项目启动时就解析Spring配置文件,全局监听器就是一个很好的选择。

spring-web包中提供了一个ContextLoaderListener类,它实现了ServletContextListener,属于项目级别的全局监听器。

这个类需要一个contextConfigLocation参数,表示要解析的Spring配置文件的路径。

这个监听器会在项目启动时,读取指定的Spring配置文件路径,并且创建WebApplicationContext对象,即Spring容器。

6.在web.xml中配置监听器用于初始化Spring容器

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"

version="4.0">

<!--配置监听器ContextLoaderListener-->

<listener>

<!--监听器全限定名-->

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<!--定义全局参数contextConfigLocation用于读取Spring配置文件-->

<context-param>

<!--参数名固定contextConfigLocation-->

<param-name>contextConfigLocation</param-name>

<!--只是Spring配置文件的路径 classpath:表示从根目录出发-->

<param-value>classpath:application.xml</param-value>

</context-param>

</web-app>

7.创建一个Servlet,访问该Servlet,获取Spring容器,从容器中获取注入的对象

package com.hqyj.springweb.controller;

import com.hqyj.springweb.entity.Pojo;

import org.springframework.web.context.WebApplicationContext;

import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

@WebServlet("/hello")

public class MyServlet extends HttpServlet {

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//获取Spring容器

WebApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(getServletContext());

//从容器中获取某个bean

Pojo pojo = app.getBean("pojo", Pojo.class);

pojo.fun();

}

}

在Spring-web项目中使用Spring-jdbc

Spring提供了一套自己的JDBC解决方案,相较于自己写的JDBC,省去了繁琐的过程(获取连接、关闭),简化了对数据库的操作。

Spring-jdbc后续会用其他持久层框架代替,如MyBatis、JPA。

1.引入相关依赖

当前案例中核心的依赖是 spring-jdbc

<!--servlet-->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>4.0.1</version>

</dependency>

<!--mysql-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>8.0.31</version>

</dependency>

<!--jstl-->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<!--spring容器-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>5.3.23</version>

</dependency>

<!--web集成spring-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>5.3.23</version>

</dependency>

<!-- spring-jdbc -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>5.3.23</version>

</dependency>

2.创建包结构(controller、service、dao、entity),创建实体类

public class Hero {

private int id;

private String name;

private String position;

private String sex;

private int price;

private String shelfDate;

//省略get/set、构造方法、toString等

}

3.在Spring配置文件中配置数据源和JDBC模板

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context " target="_blank">https://www.springframework.org/schema/context/spring-context.xsd">

<!--扫描使用了Spring注解的根包-->

<context:component-scan base-package="com.hqyj.springweb"></context:component-scan>

<!--配置数据源-->

<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">

<!--配置MySQL驱动-->

<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>

<!--配置MySQL地址-->

<property name="url" value="jdbc:mysql://localhost:3306/gamedb?serverTimezone=Asia/Shanghai"></property>

<property name="username" value="root"></property>

<property name="password" value="root"></property>

</bean>

<!--配置JDBC模板-->

<bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">

<!--设置要操作的数据源-->

<property name="dataSource" ref="dataSource"></property>

</bean>

</beans>

2spring-mvc

MVC

MVC设计思想并不是某个语言特有的设计思想,而是一种通用的模式。

是将一个应用分为三个组成部分:Model模型,View视图,Controller控制器

这样会降低系统的耦合度,提高它的可扩展性和维护性。

SpringMVC

在Web阶段中,控制层是由Servlet实现,传统的Servlet,需要创建、重写方法、配置映射。使用时极不方便,SpringMVC可以替换Servlet。

SpringMVC是Spring框架中位于Web开发中的一个模块,是Spring基于MVC设计模式设计的轻量级Web框架。

SpringMVC提供了一个DispatcherServlet的类,是一个Servlet。它在指定映射(通常设置为/或*.do)接收某个请求后,调用相应的模型处理得到结果,再通过视图解析器,跳转到指定页面,将结果进行渲染。

原理大致为:配置SpringMVC中的DispatcherServlet,将其映射设置为/或*.do。

如果是/表示一切请求先经过它,如果是*.do表示以.do结尾的请求先经过它,

它对该请求进行解析,指定某个Controller中的某个方法,这些方法通常返回一个字符串,

这个字符串是一个页面的名称,再通过视图解析器,将该字符串解析为某个视图的名称,跳转到该视图页面。

详细流程

使用SpringMVC
1.创建webapp项目

修改web.xml版本为4.0

创建java和resources目录

创建包结构

2.添加依赖

<!-- spring-webmvc -->

<!-- 这个依赖会包含spring-web和spring-context -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>5.3.23</version>

</dependency>

3.配置初始化Spring

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context " target="_blank">https://www.springframework.org/schema/context/spring-context.xsd">

<!--设置扫描使用了注解的根包-->

<context:component-scan base-package="com.hqyj.springmvc"></context:component-scan>

</beans>

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"

version="4.0">

<!--配置全局监听器初始化Spring-->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<!--定义全局参数读取Spring配置文件-->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:application.xml</param-value>

</context-param>

</web-app>

4.配置SpringMVC

配置要扫描的控制层类所在的包名

配置内部资源视图解析器以及视图路径的前后缀

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context " target="_blank">https://www.springframework.org/schema/context/spring-context.xsd">

<!--扫描控制层所在的包-->

<context:component-scan base-package="com.hqyj.springmvc.controller"></context:component-scan>

<!--配置内部资源视图解析器-->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<!--最终控制层跳转的页面所在的路径及页面自身后缀名-->

<!--jsp页面不建议直接通过浏览器访问。在WEB-INF目录下在资源,无法通过浏览器直接方法,所以将jsp保存在WEB-INF目录下,最好创建一个pages-->

<property name="prefix" value="/WEB-INF/pages/"></property>

<!--现阶段使用jsp输出数据,所以后缀为.jsp-->

<property name="suffix" value=".jsp"></property>

</bean>

将该Servlet的请求映射设置为/,表示所有请求都会访问该Servlet,由该Servlet再进行分发

<!--配置DispatcherServlet-->

<servlet>

<servlet-name>dispatcherServlet</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<!--设置该Servlet的初始化参数,用于读取SpringMVC配置文件-->

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:springmvc.xml</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>dispatcherServlet</servlet-name>

<!--设置该servlet的映射为/或*.do-->

<url-pattern>/</url-pattern>

</servlet-mapping>

5.在WEB-INF目录下创建一个pages目录,在其中创建一个welcome.jsp页面

通常jsp页面不允许被浏览器直接访问,需要保存在WEB-INF目录下

6.编写控制层代码

SpringMVC相关注解

只能写在类上,表示该类属于一个控制器

该注解可以写在类或方法上。写在类上用于区分功能模块,写在类上用于区分具体功能

默认写一个属性或value或path后的值,都表示访问该类或该方法时的请求映射

method属性表示使用哪种请求方式访问该类或该方法

如果注解中不止一个属性,每个属性都需要指定属性名

post、put、delete同理

@GetMapping只能写在方法上

该注解写在某个方法的某个参数上

用于获取提交的数据,可以设置默认值在没有提交数据时使用

配置Spring+SpringMVC时用到的关键类

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:application.xml</param-value>

</context-param>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/pages/"></property>

<property name="suffix" value=".jsp"></property>

</bean>

<servlet>

<servlet-name>dispatcherServlet</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:springmvc.xml</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>dispatcherServlet</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

<filter>

<filter-name>encodingFilter</filter-name>

<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>utf-8</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>encodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

3ssm

MyBatis

一个半自动化的ORM框架。原本叫做ibatis,后来升级改名为MyBatis。

MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。

使用XML文件或注解的形式,将SQL语句映射为持久层(dao层)中的方法。

官网https://mybatis.org/mybatis-3/zh/index.html

特点

方便

简化JDBC

解除SQL语句与业务代码的耦合

sql和java代码分离,sql写在xml文件中,方便扩展维护。

支持动态SQL

不同的情况下构造不同的SQL

主流

SSM中的M

SSM项目搭建

整体流程

1.创建基于Maven的webapp项目
2.修改web.xml版本为4.0,创建java、resoureces目录、项目包结构、web-inf下的页面目录
3.导入依赖

spring-webmvc

mybatis

mybatis-spring

mysqldruid

spring-jdbc

jstl

4.配置Spring

创建application.xml

扫描项目根包

配置web.xml

设置全局参数: <context-param> ,读取application.xml文件

设置全局监听器:ContextLoaderListener,初始化Spring容器

5.配置SpringMVC

创建springmvc.xml

扫描控制层所在包

设置内部资源视图解析器:InternalResourceViewResolver,设置前后缀

配置web.xml

设置请求分发器:DispatcherServlet,在其中读取springmvc.xml配置文件

过滤器解决请求中文乱码:CharacterEncodingFilter

6.配置MyBatis

创建mybatis-config.xml(官网模板)

在application.xml中注入

数据库连接池Druid:DruidDataSource

SQL会话工厂:SqlSessionFactoryBean

映射扫描配置器:MapperScannerConfigurer

7.执行sql语句
创建dao层接口,定义方法

在resoureces下创建mapper目录创建sql映射文件xx.xml(官网模板),在其中定义sql语句

具体步骤

1.创建基于Maven的webapp项目
2.修改web.xml版本为4.0,创建java、resoureces目录、项目包结

构、web-inf下的页面目录

3.导入依赖

<!--SpringWebMVC-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>5.3.22</version>

</dependency>

<!--Mybatis-->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.5.11</version>

</dependency>

<!--Spring集成MyBatis-->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>2.0.7</version>

</dependency>

<!--数据库连接池Druid-->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.2.8</version>

</dependency>

<!--SpringJDBC-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>5.3.23</version>

</dependency>

<!--MySQL-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

4.配置Spring

在resoureces下创建application.xml

在web.xml中配置监听器和全局参数

5.配置SpringMVC

在resoureces下创建springmvc.xml

<version>8.0.29</version>

</dependency>

<!--jstl-->

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency

6.配置Mybatis

在resoureces下创建mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"" target="_blank">https://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!--设置-->

<settings>

<!--开启驼峰命名映射-->

<setting name="mapUnderscoreToCamelCase" value="true"/>

<!--开启SQL日志-->

<setting name="logImpl" value="STDOUT_LOGGING"/>

</settings>

</configuration>

在application.xml中注入

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

" target="_blank">https://www.springframework.org/schema/context/spring-context.xsd">

<!--扫描使用了Spring注解的根包-->

<context:component-scan base-package="com.hqyj.ssm01">

</context:component-scan>

<!--注入Druid数据源DruidDataSource-->

<bean class="com.alibaba.druid.pool.DruidDataSource" id="dataSource">

<property name="driverClassName" value="com.mysql.cj.jdbc.Driver">

</property>

<property name="url" value="jdbc:mysql://localhost:3306/herodb?

serverTimezone=Asia/Shanghai"></property>

<property name="username" value="root"></property>

7.执行SQL

实体类

dao层接口

<property name="password" value="123456"></property>

</bean>

<!--注入MyBatis核心对象SqlSessionFactoryBean-->

<bean class="org.mybatis.spring.SqlSessionFactoryBean"

id="sqlSessionFactory">

<!--设置数据源-->

<property name="dataSource" ref="dataSource"></property>

<!--设置MyBatis配置文件路径-->

<property name="configLocation" value="classpath:mybatisconfig.xml"></property>

<!--设置MyBatis的sql映射文件路径-->

<property name="mapperLocations" value="classpath:mapper/*.xml">

</property>

</bean>

<!--扫描项目中的dao层目录-->

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<!--设置MyBatis核心对象SqlSessionFactoryBean的名字-->

<property name="sqlSessionFactoryBeanName"

value="sqlSessionFactory"></property>

<!--dao层根包-->

<property name="basePackage" value="com.hqyj.ssm01.dao"></property>

</bean>

</beans>

在resources下的mapper目录下,创建sql映射文件,命名通常为"实体Mapper",如HeroMapper.xml

MyBatis配置文件常用设置

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"" target="_blank">http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!--设置-->

<settings>

<!--开启驼峰命名映射-->

<setting name="mapUnderscoreToCamelCase" value="true"/>

<!--开启SQL日志-->

<setting name="logImpl" value="STDOUT_LOGGING"/>

</settings>

</configuration>

4springboot+mybatis

SpringBoot

Spring推出的一个Spring框架的脚手架。

不是一个新的框架,而是搭建Spring相关内容框架的平台。

它省去了Spring、SpringMVC项目繁琐的配置过程,让开发变得更加简单。

本质还是Spring+SpringMVC,可以搭配其他的ORM框架,如MyBatis、MyBatisPlus、JPA、Hibernate等。

特点

内置了Tomcat服务器,不需要部署项目到Tomcat中

内置了数据源Hikari

减少了jar文件依赖的配置

SpringBoot中的配置文件可以使用yml格式文件,代替properties或xml

创建SpringBoot项目

通过IDEA创建

通过官网模板创建

官网模板https://start.spring.io/

点击生成,会下载一个压缩文件,解压后通过IDEA打开。

无论哪种方式,都需要重写设置Maven配置文件

创建成功后的目录结构

第一个springboot项目的helloworld

热部署

项目在开发过程中,可以不需要每次都重启,等待一段时间后会自动更新编译运行

使用
添加依赖,可以在创建的项目的时候选择,也可以中途添加

<!--热部署-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

<version>2.7.8</version>

</dependency>

开启热部署

Lombok

用于简化实体类中模板代码的工具

使用

添加依赖,可以在创建的项目的时候选择,也可以中途添加

<!--Lombok-->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.18.24</version>

<scope>provided</scope>

</dependency>

安装插件(IDEA2020.2之后的版本会内置Lombok插件,无需安装)

2.在pom.xml中添加mybatis集成SpringBoot依赖和数据库驱动

<!--mysql-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>8.0.31</version>

</dependency>

<!--springboot集成MyBatis-->

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>2.3.0</version>

</dependency>

3.在springboot配置文件application.properties中

#注释

#.properties文件称为属性文件,数据以键值对"键=值"的形式保存

#设置项目启动端口号

#server.port=9090

#设置项目上下文路径

#server.servlet.context-path=/springbootday1

#mybatis相关配置

#开启驼峰命名映射

mybatis.configuration.map-underscore-to-camel-case=true

#打印sql语句

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

#扫描mybatis的sql映射文件(将mapper.xml文件保存在resources目录下的mapper目录下)

mybatis.mapper-locations=classpath:mapper/*.xml

#数据库信息

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/gamedb?serverTimezone=Asia/Shanghai

spring.datasource.username=root

spring.datasource.password=root

mybatis的sql映射文件模板

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"" target="_blank">http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--设置该文件对应的dao层接口全限定名-->

<mapper namespace="">

</mapper>

5.在SpringBoot的启动类上,加入@MapperScan注解,扫描dao层所在根包

@SpringBootApplication

//扫描dao层所在的根包

@MapperScan("com.hqyj.first.dao")

public class FirstApplication {

public static void main(String[] args) {

SpringApplication.run(FirstApplication.class, args);

}

}

5springboot+mybatis

MyBatisPlus

官网简介 | MyBatis-Plus (baomidou.com)

MyBatis-Plus (简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

只需简单的配置,就能实现对单表的CURD。

其核心有两个接口:BaseMapper和IService

BaseMapper中封装了大量数据访问层的方法

IServcie中封装了大量业务流程层的方法

SpringBoot+MyBatisPlus

1.创建SpringBoot项目

创建时勾选依赖

devtools

lombok

spring-web

mysql-driver

2.导入SpringBoot集成MyBatisPlus依赖

<!-- SpringBoot集成MyBatisPlus -->

<dependency>

<groupId>com.baomidou</groupId>

<artifactId>mybatis-plus-boot-starter</artifactId>

<version>3.5.3.1</version>

</dependency>

3.配置application.properties文件

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/gamedb?serverTimezone=Asia/Shanghai

spring.datasource.username=root

spring.datasource.password=root

# 开启sql日志

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

# 无需加入开启驼峰命名映射,MyBatisPlus默认使用驼峰命名进行属性-字段映射

#mybatis-plus.configuration.map-underscore-to-camel-case=true

6springboot+jpa

Spring Data JPA

2001年推出了Hibernate,是一个全自动ORM框架。可以不用编写SQL语句,就能实现对数据库的持久化操作。

SUN公司在Hibernate的基础上,制定了JPA,全称 Java Persisitence API,中文名Java持久化API,

是一套Java访问数据库的规范,由一系列接口和抽象类构成。

后来Spring团队在SUN公司制定的JPA这套规范下,推出了Spring Data JPA,是JPA的具体实现。

如今常说的JPA,通常指Spring Data JPA。

SpringBoot集成Spring Data JPA

1.创建SpringBoot项目,选择依赖

2.编辑配置文件,设置要连接的数据库信息

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/bookdb?serverTimezone=Asia/Shanghai

spring.datasource.username=root

spring.datasource.password=root

# 设置数据库类型

spring.jpa.database=mysql

# 打印SQL语句

spring.jpa.show-sql=true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小长卟想说话

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值