建设干部培训中心网站,网站建设的书籍知乎,帝国cms小说网站模板下载地址,软件开发公司的优势文章目录 一. MyBatis简介二. MyBatis 使用1. 数据库和数据表的创建2. 创建Mybatis项目2.1 添加MyBatis框架支持2.2 设置MyBatis配置信息 3. MyBatis开发流程4. MyBatis查询数据库测试 三. MyBatis 流程1. MyBatis 查询数据库流程2. MyBatis 框架交互流程图 一. MyBatis简介
M… 文章目录 一. MyBatis简介二. MyBatis 使用1. 数据库和数据表的创建2. 创建Mybatis项目2.1 添加MyBatis框架支持2.2 设置MyBatis配置信息 3. MyBatis开发流程4. MyBatis查询数据库测试 三. MyBatis 流程1. MyBatis 查询数据库流程2. MyBatis 框架交互流程图 一. MyBatis简介
MyBatis是一种开源的持久层框架它可以与Java程序一起使用用于简化数据库操作。MyBatis提供了一个简单且灵活的方式来将Java对象映射到关系型数据库中的数据表。
MyBatis的主要目标是通过将SQL查询与Java代码的解耦来简化数据库访问并提供了丰富的映射功能和灵活的查询选项。使用MyBatis您可以将数据库操作定义为XML文件或注解的形式然后根据需要执行这些操作。
总之MyBatis是一个轻量级且功能强大的持久层框架适用于需要灵活控制SQL和数据库访问的Java应用程序。它提供了一种简单且可定制的方式来进行数据库操作使开发人员能够更容易地与数据库交互。 MyBatis官网
二. MyBatis 使用
MyBatis 的使用分为两部分分别为
MyBatis开发环境的配置使用MyBatis模式和语法操作数据库。
1. 数据库和数据表的创建
首先我们来创建一个数据库三张表(用户表,文章表,视频表): 将以下代码复制到MySQL5.7中:
-- 创建数据库
drop database if exists mycnblog;
create database mycnblog DEFAULT CHARACTER SET utf8mb4;-- 使用数据数据
use mycnblog;-- 创建表[用户表]
drop table if exists userinfo;
create table userinfo(id int primary key auto_increment,username varchar(100) not null,password varchar(32) not null,photo varchar(500) default ,createtime timestamp default current_timestamp,updatetime timestamp default current_timestamp,state int default 1
) default charset utf8mb4;-- 创建文章表
drop table if exists articleinfo;
create table articleinfo(id int primary key auto_increment,title varchar(100) not null,content text not null,createtime timestamp default current_timestamp,updatetime timestamp default current_timestamp,uid int not null,rcount int not null default 1,state int default 1
)default charset utf8mb4;-- 创建视频表
drop table if exists videoinfo;
create table videoinfo(vid int primary key,title varchar(250),url varchar(1000),createtime timestamp default current_timestamp,updatetime timestamp default current_timestamp,uid int
)default charset utf8mb4;-- 添加一个用户信息
INSERT INTO mycnblog.userinfo (id, username, password, photo, createtime, updatetime, state) VALUES
(1, admin, admin, , 2021-12-06 17:10:48, 2021-12-06 17:10:48, 1);-- 文章添加测试数据
insert into articleinfo(title,content,uid)values(Java,Java正文,1);-- 添加视频
insert into videoinfo(vid,title,url,uid) values(1,java title,http://www.baidu.com,1);即为创建完毕.
2. 创建Mybatis项目
添加MyBatis框架支持分为两种情况一种情况是对自己之前的 Spring 项目进行升级另一种情况是创建一个全新的 MyBatis 和 Spring Boot的项目.两者的区别是创建一个全新的 MyBatis项目时直接使用依赖(下面的演示为直接使用依赖),另一个方法是使用插件来引入依赖.(此处不做介绍)
2.1 添加MyBatis框架支持 注意此处使用2.x.x版本的. 添加完依赖后,重新reload: 然后删除不使用的文件:
2.2 设置MyBatis配置信息
(1)设置数据库连接的相关信息在配置文件中添加以下配置:
yml
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mycnblog?characterEncodingutf8useSSLfalseusername: rootpassword: 0828driver-class-name: com.mysql.cj.jdbc.Driver
注意说明如果使用的mysql-connector-java是 5.x 版本之前driver-class-name的参数值应设置为com.mysql.jdbc.Driver如果版本大于5.xdriver-class-name的参数值应设置为com.mysql.cj.jdbc.Driver。(2)MyBatis xml保存路径和xml命名模式设置MyBatis xml保存路径xml 文件中保存是对数据库的具体操作SQL配置如下:
yml#设置MyBatis保存路径mybatis:mapper-locations: classpath:mybatis/*Mapper.xml(3)启动MyBatis项目:
在设置好MyBatis配置信息后运行启动MyBatis项目观察能否成功运行如果项目成功运行说明配置成功。
3. MyBatis开发流程
(1)根据xml保存路径创建包(2)添加实体类对象 在 Java 目录下创建一个实体类包用来存放各种实体类其中就包含UserEntity实体类。
package com.example.demo.entity;import lombok.Data;import java.time.LocalDateTime;Data
public class UserEntity {private Integer id;private String username;private String password;private String photo;private LocalDateTime createtime;private LocalDateTime updatetime;private Integer state;
}(3)数据库持久层UserMapper接口定义代码
package com.example.demo.mapper;import com.example.demo.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;import java.util.List;Mapper
public interface UserMapper {ListUserEntity getAll();
}
注意说明创建好UserMapper类后立即在类上添加Mapper注解该注解源自org.apache.ibatis.annotations.Mapper。 Mapper注解是MyBatis框架中的一个注解用于标识一个Java接口或抽象类作为数据访问对象DAO接口。 当我们在Java接口或抽象类上添加Mapper注解时MyBatis会根据接口定义生成对应的实现类。这样我们就可以在应用程序中通过调用这些接口方法来执行数据库操作。 需要注意的是使用Mapper注解时需要确保接口与对应的XML映射文件名一致并且同名的XML映射文件可以被正确加载和解析。 (4)添加 mybatis xml 文件
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespace/mapper为了更好地理解上述内容举个例子UserMapper.xml查询所有用户的具体实现实现代码如下
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.example.demo.mapper.UserMapperselect idgetAll resultTypecom.example.demo.entity.UserEntityselect * from userinfo/select
/mappernamespace属性用于指定映射器接口的完全限定名它是与此映射器文件相关联的映射器接口的唯一标识形式为全包名.类名。id属性指定了语句的唯一标识符与接口中定义的方法名称⼀样的表示对接口的具体实现方法。resultType属性指定了查询结果的类型。在这个例子中查询结果的类型是com.example.mybatis.entity.UserEntity。
综上所述这个示例的目的是定义了一个名为getAll的查询语句它将查询数据库中的userinfo表并将结果映射为com.example.mybatis.entity.UserEntity类型的对象。
通过这个映射文件可以让MyBatis框架自动生成相应的SQL查询代码方便在 Java 程序中调用和使用。 (5)添加 Service 服务层示例具体实现代码如下
package com.example.mybatis.service;
import com.example.mybatis.entity.UserEntity;
import com.example.mybatis.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
Service
public class UserService {Autowiredprivate UserMapper userMapper;public ListUserEntity getAll(){return userMapper.getAll();}
}
(6)添加 Controller 控制层示例具体实现代码如下
package com.example.demo.controller;import com.example.demo.entity.UserEntity;
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.RestController;import java.util.List;RestController
RequestMapping(/user)
public class UserController {Autowiredprivate UserService userService;RequestMapping(getall)public ListUserEntity getAll(){return userService.getAll();}
}
实现代码说明在Controller类(控制层)中注入Service(服务层)并在Controller类中调用Service类中的具体方法。
4. MyBatis查询数据库测试
(1)数据库记录信息 (2)浏览器地址栏输入 MyBatisX插件的安装:
三. MyBatis 流程
1. MyBatis 查询数据库流程
MyBatis 在进行查询数据库操作的执行流程主要为
配置数据源在MyBatis中首先需要在配置文件中配置数据源以便连接到数据库。通常是可以通过使用连接池或者直接配置数据库连接信息连接。创建映射文件MyBatis使用XML文件来定义数据库操作语句和映射关系。创建一个映射文件它包含了数据库查询、插入、更新和删除等操作的语句以及将结果映射到 Java对象的规则。创建映射接口为每个映射文件创建一个对应的 Java接口接口中定义了与映射文件中相同的操作方法。配置映射关系在MyBatis的配置文件中将映射文件和映射接口进行关联指定它们的路径和命名空间。注入Mapper接口在需要使用查询功能的类中通过依赖注入比如Autowired方式注入Mapper接口的实例。 Controller 类中注入Service 类对象Service类中注入 Mapper 接口。调用Mapper接口进行查询通过注入的Mapper接口实例调用定义的查询方法将参数传递给方法并执行查询操作。 Controller 类控制层中调用 Service类服务层而Service类服务层中调用Mapper类接口持久层。处理查询结果根据查询的需求和Mapper接口方法的返回类型对查询结果进行处理。可以返回单个对象、列表、映射结果等。 查询结果从Mapper持久层中返回至Service再从Service服务层中返回至Controller最后再从Controller控制层返回至前端。
2. MyBatis 框架交互流程图
MyBatis 在整个框架中的定位框架交互流程图 注意说明MyBatis 是一个ORM框架ORM (Object Relational Mapping)即对象关系映射。在面向对象编程语言中将关系型数据库中的数据与对象建立起映射关系进而自动的完成数据与对象的互相转换。
对象关系映射主要完成两步操作分别为将输入数据传入对象 SQL 映射成原生SQL以及将结果集映射为返回对象输出对象。