网站建设费用价格,石家庄seo网站推广,网站关键词库如何做,做网站ps能用美图秀秀么目录
引言
MyBatis 介绍
掌握两个点
在框架中的定位
创建数据库
配置 MyBatis
引入依赖
配置文件
创建实体类
构建 Mapper 层代码实现
添加 mapper 接口
添加 UserMapper.xml
实现 Service 层
实现 Controller 层
最终测验 阅读下面文章之前建议了解并创建…目录
引言
MyBatis 介绍
掌握两个点
在框架中的定位
创建数据库
配置 MyBatis
引入依赖
配置文件
创建实体类
构建 Mapper 层代码实现
添加 mapper 接口
添加 UserMapper.xml
实现 Service 层
实现 Controller 层
最终测验 阅读下面文章之前建议了解并创建一个 Spring Boot 项目
Spring Boot 项目的创建与使用 引言 所谓的 SSM 项目现在其实指的就是 Spring Boot Spring MVC MyBatis MyBatis 介绍 MyBatis 是一款优秀的持久层框架它支持自定义SQL、存储过程以及高级映射MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作简单来说 Mybatis 是更简单完成程序和数据库交互的工具也就是更简单的操作和读取数据库工具 掌握两个点 配置 MyBatis 开发环境使用 MyBatis 模式和语法操作数据库 在框架中的定位 框架交互流程图 创建数据库 既然我们要讲解 MyBatis 的配置与使用数据库的创建是必不可少的此处我们在本机的 MySQL 数据库中创建一个 message 数据库且在 message 数据库中再创建一个 user 表用来存放用户信息 drop database if exists message;
create database message;
use message;create table user(id int primary key auto_increment,name varchar(20),age int
);insert into user values(null,xiaolin,18);
insert into user values(null,maolin,20);
insert into user values(null,xiaomei,19); 配置 MyBatis 引入依赖 我们在 pom.xml 中引入相关依赖 dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.3.0/version
/dependency 配置文件 此处配置均在配置文件 application.properties 下添加 # 配置数据库连接
spring.datasource.urljdbc:mysql://localhost:3306/message?characterEncodingutf8useSSLfalse
spring.datasource.usernameroot
# 此处填你自己设置的数据库密码
spring.datasource.password1111
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver 配置连接字符串 # 配置 mybatis xml 的文件路径
mybatis.mapper-locationsclasspath:mybatis/*Mapper.xml 配置 MyBatis 中的 XML 路径我们需在 resources/mapper 创建所有表的 xml 文件 注意 当我们仅引入依赖未配置上述文件此时启动我们的 SSM 项目一定会发生报错即启动失败 数据库连接配置文件该文件包含了连接数据库所需的信息如数据库的 URL、用户名、密码等如果未配置该文件那么应用程序将无法连接到数据库从而无法进行数据的读写操作 mybatis xml 文件路径该文件定义了 mybatis 的 SQL 映射语句和结果映射。如果未配置该文件则 mybatis 将无法找到 SQL 映射语句从而无法执行数据库操作 创建实体类 此处我们创建一个 User 实体类为了对应上我们在 message 数据库中创建的 user 表从而建立好一个映射关系两点要求具有 getter 和 setter 方法属性名必须与 sql 字段名一致 import lombok.Data;Data
public class User {private int id;private String name;private int age;
} 此处我们使用 LomBok 来通过注解给 User 实体类添加上 getter 和 setter 方法 构建 Mapper 层代码实现 MyBatis 通过两个部分建立后端和数据库的联系接口该接口中的每个方法 均映射了 XML 文件中的具体 SQL 语句XML 实现接口用来写具体的 SQL 语句 添加 mapper 接口 此处我们创建一个 UserMapper 接口接口下的每个方法就对应 对数据库 user 表的一个操作这里实现的是根据 id 查询用户信息 import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;//添加 Mapper 注解 代表该接口会伴随着 项目的启动而注入到容器中
Mapper
public interface UserMapper {
// 根据 id 查询用户信息User getUserById(Param(user_id) Integer id);
} 注意 此处的 Param 注解用于给方法的参数重命名 添加 UserMapper.xml 该 xml 文件需与上述的 mapper 接口相对应 添加 *Mapper.xml 的固定格式 ?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybati
s.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.example.demo.mapper.UserMapper/mapper 因为此处的 UserMapper.xml 需与上文的 UserMapper 接口相对应即 namespace 需填 UserMapper 接口的文件路径 又因为此处我们需要写的是 根据 id 查询用户信息即应该使用 select 语句 ?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybati
s.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.example.demo.mapper.UserMapperselect idgetUserById resultTypecom.example.demo.entity.Userselect * from user where id ${user_id}/select/mapper 该新添加的 select 标签具有三处对应关系 实现 Service 层 在 MyBatis 中服务层Service 层的主要作用是封装业务逻辑实现业务流程的复杂性提高代码的可重用性和可维护性简单来说 服务层中的方法一般用来编排 mapper 层的各个接口从而实现所需的业务逻辑Controller 会调用 Service 层的方法而不是直接调用 Mapper 层的方法 实例理解 有一个业务逻辑需要在 user 表中连续插入多条数据则可在 service 层通过 for 循环的方式调用 mapper 层中对应的方法来实现该逻辑 此处我们的业务逻辑很简单仅实现根据 id 查询用户信息即可 UserService 类中具体代码实现 import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;//添加 Service 注解 代表该类会伴随着 项目的启动而注入到容器中
Service
public class UserService {Autowiredprivate UserMapper userMapper;public User getUserById(Integer id) {return userMapper.getUserById(id);}
} 实现 Controller 层 控制器层用于直接与客户端进行交互接收客户端 HTTP 请求并实现相应的业务逻辑 此处客户端的 HTTP 请求正是想根据 id 查询用户信息 UserController 类中具体代码实现 import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;ResponseBody
Controller
RequestMapping(/user)
public class UserController {Autowiredprivate UserService userService;RequestMapping(/get-user-by-id)public User getUserById(Integer id) {if(id null){return null;}return userService.getUserById(id);}
} 最终测验 我们在浏览器的 URL 框中输入与 UserController 所对应的 URL 地址从而实现调用到 getUserById 方法 如上图所示我们成功查询到了数据库中 id 1 的用户信息 看完上述文章后重新理解下图 这便是上述文章所写的整个交互过程