当前位置: 首页> 财经> 金融 > 福州全网网站建设_土巴兔装修公司电话_全国疫情最新_软文平台发布

福州全网网站建设_土巴兔装修公司电话_全国疫情最新_软文平台发布

时间:2025/9/3 20:40:53来源:https://blog.csdn.net/Theflowerofac/article/details/147089622 浏览次数:0次
福州全网网站建设_土巴兔装修公司电话_全国疫情最新_软文平台发布

学习视频资料来源:https://www.bilibili.com/video/BV1R14y1W7yS

文章目录

  • 1. 架构设计
  • 2. 核心组件及调用关系
  • 3. 源码环境搭建
    • 3.1 测试类
    • 3.2 实体类
    • 3.3 核心配置文件
    • 3.4 映射配置文件
    • 3.5 遇到的问题

1. 架构设计

在这里插入图片描述

Mybatis整体架构分为4层:

  1. 接口层:提供增删改查的接口,通过调用这些接口可以完成与数据库的交互。调用的方式有两种:基于statementId和基于mapper接口。
  2. 数据处理:是Mybatis框架的核心层,负责解析SQL,根据调用请求完成一次数据库交互。
  3. 框架支撑层:负责通用基础服务支撑。SQL语句配置方式:基于xml配置和基于注解配置。对于一些简单的SQL,使用注解的方式比较方便。但对于一些复杂的SQL,比如SQL的动态拼接等,使用注解的方式是非常繁琐的,所以推荐使用xml配置更加方便和维护。
  4. 引导层:mybatis启动需要的配置信息。包括:基于xml配置方式和基于Java API方式。

2. 核心组件及调用关系

在这里插入图片描述
从上往下各组件介绍:

  1. SqlSession:Mybatis对外暴力的核心API,一些增删改查接口,如selectOne、selectList、insert、delete、update。
  2. Excutor: 负责数据库操作及两级缓存的维护。SqlSession并不直接调用JDBC,而是委派给Excutor去执行的。
  3. StatementHandler:语句执行器。负责封装JDBC操作:参数设置,结果集合封装。
  4. ParameterHandler:参数处理器。实际上把参数处理的过程,委托给TypeHandler
  5. TypeHandler:类型转换类似,将参数从Java类型转换为jdbc类型,将结果集从jdbc类型转换为java类型。
  6. ResultSet:结果集
  7. ResultHandler:结果集处理器。实际上把参数处理的过程,委托给TypeHandler。

3. 源码环境搭建

这个就比较简单了。到mybatis官网https://mybatis.p2hp.com/,找到仓库地址https://github.com/mybatis/mybatis-3/releases/tag/mybatis-3.5.7,下载源码。我这里用的版本和视频中的一样3.5.7。
打开项目新建核心配置文件、映射配置文件、实体类、测试类。目录如下:
在这里插入图片描述

3.1 测试类

public class MybatisTest {@Testpublic void test1() throws IOException {System.setProperty("javax.xml.accessExternalDTD", "all");InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream,"development");SqlSession sqlSession = build.openSession();User user = new User();user.setId(1);user.setUsername("xiaoming");Object o = sqlSession.selectOne("com.mqlyes.dao.UserDao.findByCondition", user);System.out.println(o);}
}

3.2 实体类

public class User {private Integer id;private String username;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +'}';}
}

3.3 核心配置文件

注意替换数据库地址和密码

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 数据源配置 --><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://192.168.x.x:3306/test?useSSL=false&amp;serverTimezone=UTC"/><property name="username" value="xxxx"/><property name="password" value="xxxx"/></dataSource></environment></environments><!-- Mapper 配置 --><mappers><mapper resources="mapper/UserMapper.xml"/></mappers>
</configuration>

3.4 映射配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mqlyes.dao.UserDao"><!--    唯一标识: namespace.id--><!-- 查询所有用户 --><select id="findAll" resultType="com.mqlyes.pojo.User">select * from user</select><!-- 按条件查询用户 --><!--    --><select id="findByCondition" resultType="com.mqlyes.pojo.User" parameterType="com.mqlyes.pojo.User">select * from user where id = #{id} and username = #{username}</select>
</mapper>

3.5 遇到的问题

错误1:如果下面的报错,就在测试类中添加代码

 System.setProperty("javax.xml.accessExternalDTD", "all"); 

在这里插入图片描述
这个错误我在网上试了一个方案,不生效。用代码指定的方式可以。
错误2. 如果报配置文件找不到,就检查build后自己的target目录下,是否包含配置文件。可以试试把pom文件中resource和testResource相关的注释掉,用默认的方式。我这里注释掉就可以了。这个错误是由于没把配置文件编译进target导致的。
在这里插入图片描述
等到后边我把自己的源码传上去~

关键字:福州全网网站建设_土巴兔装修公司电话_全国疫情最新_软文平台发布

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: