完整京淘项目的演练<一>小Demo

目录

2.4.1 SpringBoot原生POM.xml文件

2.5 关于pom.xml标签说明

2.5.1 关于坐标的说明

2.5.3 父级项目定义

2.5.5 maven依赖的传递性

2.5.6 maven依赖传递性实现原理

2.5.7 文件传递有效性

3. SpringBoot高级用法

3.1 关于配置文件说明

3.1.1pro文件说明

3.1.2 YML文件说明

3.2 动态为属性赋值

3.2.1 需求说明

3.2.3 动态为属性赋值

3.3.3 pro为属性赋值

1. SpringBoot高级用法

1.1 常规方式创建SpringBoot项目

1.1.1 创建maven工程

1.1.2 编辑pom.xml文件

1.3 热部署

1.3.1 需求说明

1.3.2 导入jar包

1.3.3 IDEA环境配置(选做)

1.4 数据库导入

1.4.1 关于数据库链接问题说明

1.4 数据库导入

1.4.1 关于数据库链接问题说明

1.4.2 导入数据库

1.5 lombok说明

1.5.1 创建POJO对象

1.5.2 lombok插件说明

1.5.3 导入jar包

1.5.4 常用注解

2.4 Mybatis入门案例

2.4.1 导入jar包

2.4.2 编辑POJO对象

2.4.3 编辑mybatis-config.xml

2.4.4 构建持久层接口

2.4.5 构建mapper接口的实现类的xml配置文件

2.4.6 Mybatis关联映射文件

2.4.7 Mybatis实现数据查询

2.4.8 Mybatis调用流程

2.5 Mybatis常见报错

2.5.1 BindingException异常说明

2.6.2 编辑xml映射文件

2.6.3 编辑测试API

3 补充知识

3.1 驱动问题

3.2 数据源链接问题

1. Mybatis入门操作

1.1 简化Mybatis操作

1.1.1 @BeforeEach注解说明

1.1.2 测试案例

1.2 作业1-根据名称查询

1.2.1 编辑测试类

1.2.2 编辑xml映射文件

2 mybatis中参数封装

2.1 案例分析

2.1.1 编辑测试方法

2.1.2 编辑业务接口

2.2 关于mybatis参数问题说明

2.2.1 报错说明

2.2.3 编辑测试案例

2.2.4 编辑xml映射文件

2.2.5 参数知识点总结

2.3 #号和$符用法

2.3.1 规则说明

3.1 新增操作

3.1.1 编辑测试方法

3.1.2 编辑Mapper接口

3.2 CURD作业

3.3 Mybatis中的转义标签

3.3.0 xml转义语法

3.3.2 编辑测试类

3.3.3 编辑Mapper接口文件

3.4 Mybatis集合用法

3.4.1 需求分析

3.4.2 编辑测试方法

3.4.3 编辑接口方法

3.5 Mybatis集合用法2

3.5.2 编辑mapper接口

知识小结

作业

1. Mybatis作业

1.1 模糊查询

1.1.1编辑测试类

1.1.2 编辑xml映射文件

1.2 批量更新操作

1.2.1 编辑测试方法

1.2.2 编辑xml映射文件

2. Mybatis优化设置

2.0 关于Mybatis 核心配置文件的顺序

2.1 mybatis简化-别名包

2.1.1 业务说明

2.1.2 实现别名配置

2.1.3 使用别名映射

2.1.5 别名的注解定义

2.2 Mybatis简化-Sql标签

2.2.1 业务说明

2.2.2 关于Sql标签的说明

3. Mybatis-动态Sql

3.1 IF-WHERE用法

3.1.1 业务需求

3.1.3 编辑xml映射文件

3.2 动态Sql-SET标签

3.2.1 编辑测试案例

3.2.2 编辑mapper接口

3.3.2 编辑测试类

4 ResultMap用法

4.1 项目构建

4.1.1 创建表

4.2.3 编辑业务接口

5. 关联关系

5.1 常见关联关系

5.2 一对一

5.2.1 创建表

5.2.2 构建代码结构

1. Mybatis高级用法

1.1 一对一案例

1.1.1 编辑测试案例

1.1.2 编辑业务接口

1.3.2 编辑业务接口

1.3.4 子查询的调用逻辑图

1.2 一对多

1.2.1 业务逻辑

1.2.3 编辑测试类

1.2.4 编辑业务接口

1.3 驼峰规则映射

1.3.1 编辑mybatis-config.xml

.3.2 编辑xml 映射文件

1.4 Mybatis中的缓存机制

1.4.1 什么是缓存机制

1.4.2 一级缓存

1.4.3 二级缓存

2. Mybatis框架总结

2.1 ORM思想

2.2 Mybaits框架介绍

2.3 Mybaits使用步骤

2.3.1 导入jar包

2.3.2 编辑核心配置文件

2.3.3 创建接口/xml映射文件

2.3.3 入门案例步骤

2.4 简化mybatis操作

2.5 Mybatis的参数封装

2.6 #号 $符用法

2.7 mybatis转义字符

2.8 Mybatis集合写法

2.9 mybatis特殊查询

2.10 Mybatis优化

2.11 动态Sql

2.12 resultMap用法

2.13 关联关系

2.13.1 一对一

2.14 mybatis中的缓存机制

1. Mybatis补充知识

1.1

参数取值特殊说明

1.2 代理对象说明

1.2.1 常见动态代理

2. 三大框架整合

2.1 框架概述

2.1.1 Spring框架

2.1.2 Spring框架核心机制

2.1.2 SpringMVC

2.2 框架之间的调用关系

2.2 项目整合实现

2.2.1 创建项目

#2.2.2 编辑pom.xml文件

2.3 编辑核心代码

2.3.1 编辑User的POJO

2.3.2 编辑Mapper接口

2.3.3 编辑xml映射文件

2.3.4 编辑Service接口和实现类

2.5 Spring管理Mapper接口

2.5.1 报错说明

2.5.2 @Mapper和@MapperScan注解

2.6 整合报错说明

2.6.1 绑定异常

2.6.2 数据库链接异常

3 RestFul实现参数传递

3.1 根据ID查询数据

3.1.1 请求路径

3.1.2 编辑UserController

3.1.3 编辑UserService接口/实现类

3.1.4 编辑Mapper接口/映射文件

4 框架整合作业

5 SpringMVC参数传递

5.1 关于前端控制器说明

5.2 Servlet

5.2.1 什么是Servlet

5.2.3 预习作业

1. 框架整理

1.1 展现Sql日志

1.2 SpringMVC参数传递说明

1.2.1 简单参数传值

1.2.2 对象接收数据

1.2.3 对象的引用赋值

1.3 RESTFul业务说明

1.3.1 编辑UserController方法

1.3.2 编辑UserService

1.3.3 编辑Mapper接口

2. 前后端调用

2.1 VUE入门案例

2.2.2 VUE生命周期函数案例

2.2.3 生命周期函数难点讲解(了解)

3.2 Axios 案例练习

3.2.1 编辑页面JS

3.2.2 编辑后台UserController

4 Axios 作业练习

4.1 根据id查询数据

4.1.1 编辑页面html

4.1.2 编辑AxiosController

4.2 根据name和age查询数据

4.2.1 编辑HTML页面

4.2.2 F12 数据说明

4.2.4 编辑AxiosService

4.2.5 编辑AxiosMapper

目录

2.4.1 SpringBoot原生POM.xml文件

2.5 关于pom.xml标签说明

2.5.1 关于坐标的说明

2.5.3 父级项目定义

2.5.5 maven依赖的传递性

2.5.6 maven依赖传递性实现原理

2.5.7 文件传递有效性

3. SpringBoot高级用法

3.1 关于配置文件说明

3.1.1pro文件说明

3.1.2 YML文件说明

3.2 动态为属性赋值

3.2.1 需求说明

3.2.3 动态为属性赋值

3.3.3 pro为属性赋值

1. SpringBoot高级用法

1.1 常规方式创建SpringBoot项目

1.1.1 创建maven工程

1.1.2 编辑pom.xml文件

1.3 热部署

1.3.1 需求说明

1.3.2 导入jar包

1.3.3 IDEA环境配置(选做)

1.4 数据库导入

1.4.1 关于数据库链接问题说明

1.4 数据库导入

1.4.1 关于数据库链接问题说明

1.4.2 导入数据库

1.5 lombok说明

1.5.1 创建POJO对象

1.5.2 lombok插件说明

1.5.3 导入jar包

1.5.4 常用注解

2.4 Mybatis入门案例

2.4.1 导入jar包

2.4.2 编辑POJO对象

2.4.3 编辑mybatis-config.xml

2.4.4 构建持久层接口

2.4.5 构建mapper接口的实现类的xml配置文件

2.4.6 Mybatis关联映射文件

2.4.7 Mybatis实现数据查询

2.4.8 Mybatis调用流程

2.5 Mybatis常见报错

2.5.1 BindingException异常说明

2.6.2 编辑xml映射文件

2.6.3 编辑测试API

3 补充知识

3.1 驱动问题

3.2 数据源链接问题

1. Mybatis入门操作

1.1 简化Mybatis操作

1.1.1 @BeforeEach注解说明

1.1.2 测试案例

1.2 作业1-根据名称查询

1.2.1 编辑测试类

1.2.2 编辑xml映射文件

2 mybatis中参数封装

2.1 案例分析

2.1.1 编辑测试方法

2.1.2 编辑业务接口

2.2 关于mybatis参数问题说明

2.2.1 报错说明

2.2.3 编辑测试案例

2.2.4 编辑xml映射文件

2.2.5 参数知识点总结

2.3 #号和$符用法

2.3.1 规则说明

3.1 新增操作

3.1.1 编辑测试方法

3.1.2 编辑Mapper接口

3.2 CURD作业

3.3 Mybatis中的转义标签

3.3.0 xml转义语法

3.3.2 编辑测试类

3.3.3 编辑Mapper接口文件

3.4 Mybatis集合用法

3.4.1 需求分析

3.4.2 编辑测试方法

3.4.3 编辑接口方法

3.5 Mybatis集合用法2

3.5.2 编辑mapper接口

知识小结

作业

1. Mybatis作业

1.1 模糊查询

1.1.1编辑测试类

1.1.2 编辑xml映射文件

1.2 批量更新操作

1.2.1 编辑测试方法

1.2.2 编辑xml映射文件

2. Mybatis优化设置

2.0 关于Mybatis 核心配置文件的顺序

2.1 mybatis简化-别名包

2.1.1 业务说明

2.1.2 实现别名配置

2.1.3 使用别名映射

2.1.5 别名的注解定义

2.2 Mybatis简化-Sql标签

2.2.1 业务说明

2.2.2 关于Sql标签的说明

3. Mybatis-动态Sql

3.1 IF-WHERE用法

3.1.1 业务需求

3.1.3 编辑xml映射文件

3.2 动态Sql-SET标签

3.2.1 编辑测试案例

3.2.2 编辑mapper接口

3.3.2 编辑测试类

4 ResultMap用法

4.1 项目构建

4.1.1 创建表

4.2.3 编辑业务接口

5. 关联关系

5.1 常见关联关系

5.2 一对一

5.2.1 创建表

5.2.2 构建代码结构

1. Mybatis高级用法

1.1 一对一案例

1.1.1 编辑测试案例

1.1.2 编辑业务接口

1.3.2 编辑业务接口

1.3.4 子查询的调用逻辑图

1.2 一对多

1.2.1 业务逻辑

1.2.3 编辑测试类

1.2.4 编辑业务接口

1.3 驼峰规则映射

1.3.1 编辑mybatis-config.xml

.3.2 编辑xml 映射文件

1.4 Mybatis中的缓存机制

1.4.1 什么是缓存机制

1.4.2 一级缓存

1.4.3 二级缓存

2. Mybatis框架总结

2.1 ORM思想

2.2 Mybaits框架介绍

2.3 Mybaits使用步骤

2.3.1 导入jar包

2.3.2 编辑核心配置文件

2.3.3 创建接口/xml映射文件

2.3.3 入门案例步骤

2.4 简化mybatis操作

2.5 Mybatis的参数封装

2.6 #号 $符用法

2.7 mybatis转义字符

2.8 Mybatis集合写法

2.9 mybatis特殊查询

2.10 Mybatis优化

2.11 动态Sql

2.12 resultMap用法

2.13 关联关系

2.13.1 一对一

2.14 mybatis中的缓存机制

1. Mybatis补充知识

1.1

参数取值特殊说明

1.2 代理对象说明

1.2.1 常见动态代理

2. 三大框架整合

2.1 框架概述

2.1.1 Spring框架

2.1.2 Spring框架核心机制

2.1.2 SpringMVC

2.2 框架之间的调用关系

2.2 项目整合实现

2.2.1 创建项目

#2.2.2 编辑pom.xml文件

2.3 编辑核心代码

2.3.1 编辑User的POJO

2.3.2 编辑Mapper接口

2.3.3 编辑xml映射文件

2.3.4 编辑Service接口和实现类

2.5 Spring管理Mapper接口

2.5.1 报错说明

2.5.2 @Mapper和@MapperScan注解

2.6 整合报错说明

2.6.1 绑定异常

2.6.2 数据库链接异常

3 RestFul实现参数传递

3.1 根据ID查询数据

3.1.1 请求路径

3.1.2 编辑UserController

3.1.3 编辑UserService接口/实现类

3.1.4 编辑Mapper接口/映射文件

4 框架整合作业

5 SpringMVC参数传递

5.1 关于前端控制器说明

5.2 Servlet

5.2.1 什么是Servlet

5.2.3 预习作业

1. 框架整理

1.1 展现Sql日志

1.2 SpringMVC参数传递说明

1.2.1 简单参数传值

1.2.2 对象接收数据

1.2.3 对象的引用赋值

1.3 RESTFul业务说明

1.3.1 编辑UserController方法

1.3.2 编辑UserService

1.3.3 编辑Mapper接口

2. 前后端调用

2.1 VUE入门案例

2.2.2 VUE生命周期函数案例

2.2.3 生命周期函数难点讲解(了解)

3.2 Axios 案例练习

3.2.1 编辑页面JS

3.2.2 编辑后台UserController

4 Axios 作业练习

4.1 根据id查询数据

4.1.1 编辑页面html

4.1.2 编辑AxiosController

4.2 根据name和age查询数据

4.2.1 编辑HTML页面

4.2.2 F12 数据说明

4.2.4 编辑AxiosService

4.2.5 编辑AxiosMapper

1. Axios 学习(重点知识)

1.1 Axios-GET/DELETE

1.1.1 请求方式说明

1.1.2 Axios-GET-RestFul

1.2 Axios-POST/PUT

1.2.1 编辑JS

1.2.2 检查请求路径

1.2.4 编辑AxiosService

1.2.5 编辑AxiosMapper

1.3 Axios简化操作

1.3.1 指定请求的前缀

1.3.2 async-await 关键字

1.3 前后端项目调用案例

1.3.1 案例功能说明

1.3.2 用户列表展现

1.3.3 用户新增

1.3.4 用户修改

1.3.5 修改后端实现

1.3.5 修改后端实现

2. 京淘项目前端项目搭建

2.1 node.js 安装

2.2 导入前端项目

2.2.1 前端资源文件

2.2.2 解压文件



1.IDEA环境配置

字体控制大小

2.自动提示设置

3.设置方法提示

4.字符集的设置

 

 5.自动编译

 6.maven的配置

 settings.xml里的文件设置

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

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!--
 | This is the configuration file for Maven. It can be specified at two levels:
 |
 |  1. User Level. This settings.xml file provides configuration for a single user,
 |                 and is normally provided in ${user.home}/.m2/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -s /path/to/user/settings.xml
 |
 |  2. Global Level. This settings.xml file provides configuration for all Maven
 |                 users on a machine (assuming they're all using the same Maven
 |                 installation). It's normally provided in
 |                 ${maven.conf}/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -gs /path/to/global/settings.xml
 |
 | The sections in this sample file are intended to give you a running start at
 | getting the most out of your Maven installation. Where appropriate, the default
 | values (values used when the setting is not specified) are provided.
 |
 |-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

  <!-- interactiveMode
   | This will determine whether maven prompts you when it needs input. If set to false,
   | maven will use a sensible default value, perhaps based on some other setting, for
   | the parameter in question.
   |
   | Default: true
  <interactiveMode>true</interactiveMode>
  -->

  <!-- offline
   | Determines whether maven should attempt to connect to the network when executing a build.
   | This will have an effect on artifact downloads, artifact deployment, and others.
   |
   | Default: false
  <offline>false</offline>
  -->

  <!-- pluginGroups
   | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
   | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
   | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
   |-->
  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
  </pluginGroups>

  <!-- proxies
   | This is a list of proxies which can be used on this machine to connect to the network.
   | Unless otherwise specified (by system property or command-line switch), the first proxy
   | specification in this list marked as active will be used.
   |-->
  <proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
  </proxies>

  <!-- servers
   | This is a list of authentication profiles, keyed by the server-id used within the system.
   | Authentication profiles can be used whenever maven must make a connection to a remote server.
   |-->
  <servers>
    <!-- server
     | Specifies the authentication information to use when connecting to a particular server, identified by
     | a unique name within the system (referred to by the 'id' attribute below).
     |
     | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
     |       used together.
     |
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    -->

    <!-- Another sample, using keys to authenticate.
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
  </servers>

  <!-- mirrors
   | This is a list of mirrors to be used in downloading artifacts from remote repositories.
   |
   | It works like this: a POM may declare a repository to use in resolving certain artifacts.
   | However, this repository may have problems with heavy traffic at times, so people have mirrored
   | it to several places.
   |
   | That repository definition will have a unique id, so we can create a mirror reference for that
   | repository, to be used as an alternate download site. The mirror site will be the preferred
   | server for that repository.
   |-->
  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
     	<!--定义本地仓库路径 如果pom.xml文件报错,则切换本地仓库-->
		<localRepository>D:\all\mavenall\scarepository</localRepository> -->
    <!--阿里云镜像-->
		<mirror>
	        <id>nexus-aliyun</id>
	        <mirrorOf>*</mirrorOf>
	        <name>Nexus aliyun</name>
	        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
	 	</mirror>
     <!-- 阿里镜像仓库 2号仓库-->
     <mirror>
    <id>repo2</id>
    <name>Mirror from Maven Repo2</name>
    <url>http://repo2.maven.org/maven2/</url>
    <mirrorOf>central</mirrorOf>
</mirror>


    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>
  </mirrors>

  <!-- profiles
   | This is a list of profiles which can be activated in a variety of ways, and which can modify
   | the build process. Profiles provided in the settings.xml are intended to provide local machine-
   | specific paths and repository locations which allow the build to work in the local environment.
   |
   | For example, if you have an integration testing plugin - like cactus - that needs to know where
   | your Tomcat instance is installed, you can provide a variable here such that the variable is
   | dereferenced during the build process to configure the cactus plugin.
   |
   | As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
   | section of this document (settings.xml) - will be discussed later. Another way essentially
   | relies on the detection of a system property, either matching a particular value for the property,
   | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
   | value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
   | Finally, the list of active profiles can be specified directly from the command line.
   |
   | NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
   |       repositories, plugin repositories, and free-form properties to be used as configuration
   |       variables for plugins in the POM.
   |
   |-->
  <profiles>
    <!-- profile
     | Specifies a set of introductions to the build process, to be activated using one or more of the
     | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
     | or the command line, profiles have to have an ID that is unique.
     |
     | An encouraged best practice for profile identification is to use a consistent naming convention
     | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
     | This will make it more intuitive to understand what the set of introduced profiles is attempting
     | to accomplish, particularly when you only have a list of profile id's for debug.
     |
     | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.
    <profile>
      <id>jdk-1.4</id>

      <activation>
        <jdk>1.4</jdk>
      </activation>

      <repositories>
        <repository>
          <id>jdk14</id>
          <name>Repository for JDK 1.4 builds</name>
          <url>http://www.myhost.com/maven/jdk14</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
      </repositories>
    </profile>
    -->

    <!--
     | Here is another profile, activated by the system property 'target-env' with a value of 'dev',
     | which provides a specific path to the Tomcat instance. To use this, your plugin configuration
     | might hypothetically look like:
     |
     | ...
     | <plugin>
     |   <groupId>org.myco.myplugins</groupId>
     |   <artifactId>myplugin</artifactId>
     |
     |   <configuration>
     |     <tomcatLocation>${tomcatPath}</tomcatLocation>
     |   </configuration>
     | </plugin>
     | ...
     |
     | NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
     |       anything, you could just leave off the <value/> inside the activation-property.
     |
    <profile>
      <id>env-dev</id>

      <activation>
        <property>
          <name>target-env</name>
          <value>dev</value>
        </property>
      </activation>

      <properties>
        <tomcatPath>/path/to/tomcat/instance</tomcatPath>
      </properties>
    </profile>
    -->
  </profiles>

  <!-- activeProfiles
   | List of profiles that are active for all builds.
   |
  <activeProfiles>
    <activeProfile>alwaysActiveProfile</activeProfile>
    <activeProfile>anotherAlwaysActiveProfile</activeProfile>
  </activeProfiles>
  -->
</settings>

 local repository的地址,一定要与这个相同,要不然永远maven报错

 local repository里的地址,按照setting.xml里地址来写。切记

 自已经常出这个小错,在创建新项目或者仓库时,

1.6.1Maven配置

1.配置本地仓库

	<!--定义本地仓库路径 如果pom.xml文件报错,则切换本地仓库-->
		<localRepository>D:\all\mavenall\scarepository</localRepository> -->

3.配置私服镜像

<mirror>
	<id>aliyun</id>
	<name>aliyun for maven</name>
	<mirrorOf>*</mirrorOf>
	<url>https://maven.aliyun.com/repository/public</url>
   </mirror>

 3.

  1. maven中jdk配置(eclipse中配置 选做)

<profile>
   <id>jdk-1.8</id>
   <activation>
	<activeByDefault>true</activeByDefault>
      <jdk>1.8</jdk>
   </activation>
   <properties>
	   <maven.compiler.source>1.8</maven.compiler.source>
	   <maven.compiler.target>1.8</maven.compiler.target>
	   <maven.compiler.compilerVersion>
        1.8
       </maven.compiler.compilerVersion>
	 </properties>
   </profile>

1.7安装Lombok

 1.7 Lombok作用

自动生成实体对象方法:Get/Set/toString/无参构造有参构造/equals/hashcode...

 2.springboot的环境调度

默认地址: https://start.spring.io
阿里云地址: https://start.aliyun.com

其中的默认地址: https://start.spring.io与阿里云地址: https://start.aliyun.com所下载的

pom里的写法也不一样

默认地址: https://start.spring.io里新创建的

阿里云地址: https://start.aliyun.com 

 

 

 

2.5.2Maven项目的打包方式

1.默认条件是jar 包

2.web项目可以打成 war包

3.还可以打成pom 如果该项目是父级就是pom包

子集包的版本号可以到父级里面云看,

 2.4关于POM.xml文件说明

2.4.1 SpringBoot原生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 https://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.5.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>springboot_pom</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_pom</name>
    <description>springboot_pom</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>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

 2.4.2 阿里云项目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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jt</groupId>
    <artifactId>springboot_demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_demo1</name>
    <description>springboot_demo1</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.4.1</spring-boot.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>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!--相当于继承了一个父级-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <!--通过pom标识 是一个父级 -->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <mainClass>com.jt.SpringbootDemo1Application</mainClass>
                </configuration>
                <!--排除一些指定的配置-->
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

2.5 关于pom.xml标签说明

2.5.1 关于坐标的说明

说明: 该坐标在本地仓库中是唯一标识符.是当前项目打包/被依赖的唯一路径.

 <!--该配置表示maven坐标 -->
    <!--项目的组ID-->
    <groupId>com.jt</groupId>
    <!--项目名称-->
    <artifactId>springboot_demo1</artifactId>
    <!--项目版本号-->
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_demo1</name>
    <description>springboot_demo1</description>

2.5.3 父级项目定义

通过dependencyManagement标签统一定义父级工程,在其中定义了springBoot项目所有兼容的版本信息.
所以依赖项中不需要添加版本号,也可以正常依赖jar包文件

<dependencyManagement>
        <dependencies>
            <!--相当于继承了一个父级-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <!--通过pom标识 是一个父级 -->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

2.5.4依赖相关

扩展: 如果项目中依赖第三方jar包文件报错! 如何处理?
问题说明: 有时根据坐标下载jar包文件时,可能由于网络问题,导致jar包下载不完整.
解决方案: 根据第三方的坐标,查找到本地仓库的位置,之后删除 重新下载.

思想: “开箱即用” 是springBoot设计的核心 越来越简单!!!
什么是启动项: SpringBoot为整合第三方框架,写了启动项的jar包文件,其中官方已经将所有的配置信息/需要依赖的jar包文件提前测试并且定义.

 		<dependency>
            <groupId>org.springframework.boot</groupId>
            <!--SpringBoot的启动项   web 相当于引入mvc框架
                思想: "开箱即用"!!!!
                说明: 只需要引入jar包,简单的配置即可以使用该功能
             -->
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

2.5.5 maven依赖的传递性

说明: maven中的jar包是有依赖的传递性
例如: A项目依赖B.jar包, B.jar依赖C.jar. 在项目中,只需要添加B.jar.则B/C.jar都会自动添加.
实际应用: 如图web.jar包中依赖了很多其它的第三方jar包文件.

2.5.6 maven依赖传递性实现原理

mavenjar包查询网址: https://mvnrepository.com/
依赖项的相关说明:

 2.本地仓库文件说明:

 步骤:
1. 当maven开始解析项目的POM.xml文件时,根据依赖的坐标,找到指定的jar包文件.之后添加该依赖.
2. 之后扫描当前文件中的 xxx.pom文件.
3. 扫描pom.xml文件中的依赖信息dependency
4. 根据dependency的坐标 重复执行上述的操作.直到所有的依赖都添加完成.

2.5.7 文件传递有效性

需求: 网络数据传输,一般都需要进行加密处理.maven中采用SHA1数字签名的加密算法,保证数据传递的有效性!!!
说明: maven数据传递有效性原理图

2.5.7.1 SHA1介绍:

SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为**40个十六进制数**。

关键字: 数字证书.

2.5.7.2 关于Hash说明

问题1: 常见hashcode值 有多少位16进制数组成??? 8位
问题2: 8位16进制数,有多少种排列组合? 2^32种
00000000-FFFFFFFF
问题3: 相同数据进行hash(算法相同),问题: 值是否相同? 必定相同
问题4: 不同数据进行hash(算法相同),问题: 值是否相同? 可能相同 hash碰撞
问题5: 一个数据1kb, 一个数据ITB 问: hash计算的速度谁快? “一样快” hash本质

3. SpringBoot高级用法

3.1 关于配置文件说明

3.1.1pro文件说明

# 1.pro文件语法
# 数据结构类型:   key=value  特别注意不要有空格.
# 字符集编码:    程序读取文件时,默认采用ISO-8859-1编码
# 弊端: 所有的key都必须写完整,不能缩进

3.1.2 YML文件说明

# YML文件的语法
# 1.数据结构   key-value结构
# 2.写法:     key:(空格)value
# 3.层级代码结构,注意缩进
# 4.字符集  文件读取时,默认采用UTF-8编码 可以写中文
server:
  port: 8080

3.2 动态为属性赋值

3.2.1 需求说明

说明: 有时将数据写死,不方便后续扩展,需要为属性动态赋值.
解决方案: 有些数据是后台特有的.一般可以将数据写到配置文件中,之后为属性动态赋值

 3.2.2 编辑YML配置文件

# YML文件的语法
# 1.数据结构   key-value结构
# 2.写法:     key:(空格)value
# 3.层级代码结构,注意缩进 !!!!!
# 4.字符集  文件读取时,默认采用UTF-8编码 可以写中文
# 规则: 命名时最好指定前缀.
server:
  port: 8080
mysql:
  username: root
  password: root

3.2.3 动态为属性赋值

package com.jt.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 说明:
 *  1.将该类交给Spring容器管理
 *  2.SpringMVC负责调用该对象接收用户的请求.
 *  3.将业务处理之后的结果,为页面返回JSON数据.
 *  @ResponseBody作用: 将数据转化为JSON串
 */
@RestController
public class JDBCController {
    //${key} Spring提供的springel表达式 简称为:spel表达式
    //语法: 从spring容器内部获取key,动态为属性赋值.
    @Value("${mysql.username}")
    String username;     // = "root|";
    @Value("${mysql.password}")
    String password;     // = "root";

    @RequestMapping("/getMsg")
    public String getMsg(){

        return "你好数据库:"+ username +password;
    }
}

3.3 利用properties文件为属性赋值
3.3.1 需求说明
YML文件是SpringBoot的核心配置文件,一般主要用来整合其它第三方框架.属于系统配置文件.如果将大量的业务数据写到系统配置文件中. 耦合性高. 所以将业务数据最好放到pro文件中.

3.3.2 编辑pro配置文件
 

#默认ISO-8859-1 中文必定乱码
mysql.username2=mysql数据库
mysql.password2=你猜猜

3.3.3 pro为属性赋值

说明: 通过注解为属性赋值,可以指定字符集

package com.jt.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 说明:
 *  1.将该类交给Spring容器管理
 *  2.SpringMVC负责调用该对象接收用户的请求.
 *  3.将业务处理之后的结果,为页面返回JSON数据.
 *  @ResponseBody作用: 将数据转化为JSON串
 *
 *  propertySource:  value属性指定路径
 *                   encoding属性指定配置文件编码格式
 */
@RestController
@PropertySource(value="classpath:/mysql.properties",encoding = "UTF-8")
public class JDBCController {
    /**
     * 难点: 如何将pro文件交给Spring容器管理????
     * 解决方案: @PropertySource("xxxxxx/xxx.properties") 指定配置文件交给Spring
     *          容器管理
     */
    @Value("${mysql.username2}")
    private String username2;
    @Value("${mysql.password2}")
    private String password2;

    @RequestMapping("/getMsg2")
    public String getMsg2(){

        return "你好数据库:"+ username2 +password2;
    }
}

 1.2.环境分割

1. SpringBoot高级用法

1.1 常规方式创建SpringBoot项目

1.1.1 创建maven工程

1.1.2 编辑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>
    <groupId>com.jt</groupId>
    <artifactId>springboot_demo2</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--只需要复制 除了坐标之外的文件即可-->
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.4.1</spring-boot.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>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <mainClass>com.jt.SpringbootDemo1Application</mainClass>
                </configuration>
                <!--排除一些指定的配置-->
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

即可.

1.2 环境分割
1.2.1 需求说明
情景说明: 如果小李经常往返于 公司和项目基地,其中的服务器端口号经常的变化.
案例:
1. 开发 dev: 8080端口
2. 生产 prod: 9000端口
问题: 由于配置文件数量众多,如果每次修改则带来了诸多不便.所以可以采用环境分割

1.2.2 编辑YML配置文件
编辑配置文件时,注意缩进

#指定环境的默认配置
spring:
  profiles:
    active: dev
---
#为环境定义名称
server:
  port: 8080
spring:
  config:
    activate:
      on-profile: dev
# 采用---的方式实现环境分割
---
server:
  port: 9000
spring:
  config:
    activate:
      on-profile: prod

1.3 热部署

1.3.1 需求说明

在开发阶段 需要频繁的修改配置文件/代码. 需求要求将代码保存之后,程序自动的编译,并且完成tomcat服务的重启. 个别IDEA版本可能不生效.

1.3.2 导入jar包

 <!--支持热部署 开发阶段有效-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

1.3.3 IDEA环境配置(选做)

  1. 配置自动编译

 2.让热部署有效
快捷键: ctrl + alt + shift + /

 勾选自动重启

1.4 数据库导入

1.4.1 关于数据库链接问题说明

现象: 昨天数据库还可以正常使用,今天早晨开机 发现数据库链接不上? 什么原因??
原因: 有可能是windows中的服务没有启动导致的!
如图: 如果数据库的服务项没有启动,则启动即可.

1.4 数据库导入

1.4.1 关于数据库链接问题说明

现象: 昨天数据库还可以正常使用,今天早晨开机 发现数据库链接不上? 什么原因??
原因: 有可能是windows中的服务没有启动导致的!
如图: 如果数据库的服务项没有启动,则启动即可.

1.4.2 导入数据库

选择数据库之后,导入,并且刷新数据库.

1.5 lombok说明

1.5.1 创建POJO对象

package com.jt.pojo;

import org.springframework.stereotype.Component;

import java.io.Serializable;

/**
 * 实体对象要求:
 *      1.类名一般与表名关联
 *      2.属性名称一般与字段关联
 *      3.pojo中的属性类型必须为引用类型(包装类型)
 *      4.实体对象必须有get/set方法
 *      5.一般实体对象需要实现序列化接口(规则)
 *          原因: 数据可能跨平台(跨服务器)传输,必须序列化
 */
public class DemoUser implements Serializable {
    private Integer id;
    private String name;
    private Integer age;
    private String sex;
}

1.5.2 lombok插件说明

lombok可以为POJO实体对象,动态的生成get/set/toString/hashcode/equals等方法.无需程序员手动编辑.

1.5.3 导入jar包

<!--引入插件lombok 自动的set/get/构造方法插件  -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

1.5.4 常用注解

package com.jt.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.stereotype.Component;

import java.io.Serializable;

/**
 * 实体对象要求:
 *      1.类名一般与表名关联
 *      2.属性名称一般与字段关联
 *      3.pojo中的属性类型必须为引用类型(包装类型)
 *      4.实体对象必须有get/set方法
 *      5.一般实体对象需要实现序列化接口(规则)
 *          原因: 数据可能跨平台(跨服务器)传输,必须序列化
 */
@Data  //动态生成get/set/toString/equals等方法
@Accessors(chain = true) //开启链式加载 重写set方法
@NoArgsConstructor  //无参构造
@AllArgsConstructor //有参构造
public class DemoUser implements Serializable {
    private Integer id;
    private String name;
    private Integer age;
    private String sex;

    //this 运行期有效 代表当前对象
    /*public DemoUser setId(Integer id){
        this.id = id;
        return this;
    }*/

    //方法测试
    public void add(){
        DemoUser user = new DemoUser();
        user.setId(100)
            .setName("aaaa")
            .setAge(18)
            .setSex("女");
    }

}

2. Mybatis
2.1 ORM思想
对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的ORM产品,而有些程序员更倾向于创建自己的ORM工具。
概括: 用对象的方式操作数据库
衍生:
1. 对象应该与数据库中的表一一映射.
2. 对象中的属性应该与表中的字段一一映射.
3. 其中的映射应该由程序自动完成.无需人为干预.
2.2 常规JDBC的弊端

 //利用jdbc,完成新增的功能
    private static void method2() throws Exception{
        //1,注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2,获取数据库的连接
        //数据传输协议   数据库的ip 端口号 数据库名
        String url = "jdbc:mysql://localhost:3306/cgb2107";
        Connection c = DriverManager.getConnection(url,"root","root");
        //3,获取传输器
        Statement s = c.createStatement();
        //4,利用传输器执行  增删改的SQL
        //executeUpdate()用来执行增删改的SQL,只返回影响行数
        int rows = s.executeUpdate(
                "INSERT INTO emp(ename,job) VALUES('rose','副总')");
        //5,释放资源
        //r.close();//结果集
        s.close();//传输器
        c.close();//连接
    }

弊端:
1. 无论如何执行都必须获取数据库链接. 链接池 c3p0 druid HK链接池
2. 操作sql语句时,步骤繁琐. 不便于学习记忆.
3. 资源必须手动关闭.
优点:
操作数据库最快的方式就是JDBC. 协议 TCP

2.3 Mybatis
2.3.1 Mybatis介绍
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。(mybatis在内部将JDBC封装).
MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

知识整理:
1.持久化 : 计算机在计算时,数据都在内存中.如果断电则数据清空,所以要求将内存数据保存到磁盘中. 概念.
2.持久层: 程序通过Dao/Mapper 与数据库进行交互的层级代码 (Controller层 Service层 Dao/Mapper层) 具体操作.

小结: Mybatis是一个优秀的持久层框架,基于ORM设计思想,实现了以对象的方式操作数据库.
了解: Mybatis的ORM并不完全,只完成了结果集映射,但是Sql需要自己手写.所以也称之为半自动化的ORM映射框架.
2.3.2 Mybatis特点
简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
提供映射标签,支持对象与数据库的orm字段关系映射
提供对象关系映射标签,支持对象关系组建维护
提供xml标签,支持编写动态sql。 [2]

2.4 Mybatis入门案例

2.4.1 导入jar包

  <!--mybatis依赖包-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

        <!--jdbc依赖包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

2.4.2 编辑POJO对象

package com.jt.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class DemoUser implements Serializable {

    private Integer id;
    private String name;
    private Integer age;
    private String sex;
}

2.4.3 编辑mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--核心配置文件-->
<configuration>

    <!--环境配置标签 default 默认加载的环境 只能写一个   -->
    <environments default="development">

        <!--编辑开发环境  id是环境唯一标识符  -->
        <environment id="development">
            <!--事物管理器  利用jdbc控制事务 -->
            <transactionManager type="JDBC"/>
            <!--mybatis采用数据库链接池的方式整合数据源 -->
            <dataSource type="POOLED">
                <!--高版本数据库驱动 需要添加cj-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&amp;useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true&amp;allowMultiQueries=true"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>

    </environments>

    <!--Mybatis加载Mapper映射文件
        mapper映射文件是有顺序的-->

    <mappers>
        <mapper resource="mybatis/mappers/UserMapper.xml"/>
    </mappers>
</configuration>

根据官网描述,准备xml配置文件. 注意文件路径.

2.4.4 构建持久层接口

说明: 在com.jt.mapper中构建mapper接口

/**
 * 说明:
 *      1.根据面向接口开发的思想需要定义一个Mapper接口
 *      2.在接口中可以写接口方法, 谁用谁去实现!!!
        3.mybatis中的实现类以xml文件的形式存在

 */
public interface DemoUserMapper {

    //1.查询所有的表数据
    public List<DemoUser> findAll();

}

 

2.4.5 构建mapper接口的实现类的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">
<!--xml映射文件 必须与接口一对一绑定
    namespace: 指定需要绑定的接口名称. 不能重复.
 -->
<mapper namespace="com.jt.mapper.DemoUserMapper">

    <!--实现接口中的方法
        id: 需要与接口中的方法绑定. 一般复制粘贴
        resultType: 对象的包路径.
        规则: sql语句不要添加多余的;号  Oracle数据库不能添加;号
    -->
    <select id="findAll" resultType="com.jt.pojo.DemoUser">
        select id,name,age,sex from demo_user
    </select>

   <!-- <insert id=""></insert>
    <update id=""></update>
    <delete id=""></delete>-->

</mapper>

2.4.6 Mybatis关联映射文件

说明: 在mybatis-config.xml文件中添加 mappers标签.添加指定的映射文件

	<!--Mybatis加载Mapper映射文件
        1.mapper映射文件是有顺序的 位置不要随便切换
        2.通过resource 加载指定的xml映射文件
    -->
    <mappers>
        <mapper resource="mybatis/mappers/demoUserMapper.xml"/>
    </mappers>

2.4.7 Mybatis实现数据查询

 /**
     * 业务说明: 实现mybatis入门案例
     * 步骤:
     *      1.动态生成SqlSessionFactory
     *
     */
    @Test
    public void demo1() throws IOException {
        //指定配置文件地址
        String resource = "mybatis/mybatis-config.xml";
        //通过IO流 加载指定的配置文件
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //动态生成SqlSessionFactory
        SqlSessionFactory sqlSessionFactory =
                                new SqlSessionFactoryBuilder().build(inputStream);
        //获取SqlSession  类比 数据库链接
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //获取Mapper接口
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值