【测试开发】知识点-mybatis,使用入门

简介: 【测试开发】知识点-mybatis,使用入门

在之前的开发过程中,使用的是mybatis-plus框架来进行数据库操作。但是在开发过程中,会有需要自定义sql的地方,这就要用原生的mybatis


这里再简述下:Mybatis-Plus 只是在 MyBatis 的基础上做了增强但不做改变,可以进一步简化开发、提高效率。


一、介绍 MyBatis


MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。原来是 Apache 的一个开源项目 iBatis, 2010年6月这个项目由 Apache Software Foundation 迁移到了Google Code,随着开发团队转投Google Code 旗下, iBatis3.x 正式更名为 MyBatis 。


MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。


二、简单的查询


1. 添加依赖


我直接在测试平台的项目的 pom.xml 添加依赖,因为项目里的表和javaBean都是现成的,导入依赖完成后即可使用。


<!--mybatis-->
  <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.7</version>
  </dependency>


2. 新增全局配置文件


每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的,所以需要有个 XML 文件用于构建 SqlSessionFactory 的实例。


我在项目的resources下新建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>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>


这里<dataSource>需要换成自己对应的数据库连接信息。<mapper>里也是后面需要修改的地方,用于注册具体放sql的 xml 文件。


3. 创建sql映射的 xml 文件


就先使用 User 表测试用,对应的 javaBean 就是 package com.pingguo.bloomtest.pojo;下面的User类:


@Data
public class User {
    @TableId(type = IdType.ID_WORKER)
    private Long id;
    private String username;
    private String password;
    @TableField(fill = FieldFill.INSERT)        // 新增的时候填充数据
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE) // 新增或修改的时候填充数据
    private Date updateTime;
}


OK,新建一个 xml 文件UserMapper.xml,暂时还是放在 resources 下面:


<?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">
<mapper namespace="org.mybatis.example.UserMapper">
    <select id="selectUser" resultType="com.pingguo.bloomtest.pojo.User">
      select * from user where id = #{id}
    </select>
</mapper>


  • namespace:名称空间,暂时随便起个名字,后面可以跟 id 组成唯一标识


  • id:代表这个标签的唯一标识


  • resultType:返回值类型,查出来的记录想要封装成 User 对象


  • sql:在标签里写上对应的 sql


  • #{id}:从传递过来的参数中取出 id 值


4. 测试类进行查询


新建一个测试类MybatisTest用于测试:


public class MybatisTest {
    @Test
    void test() throws IOException {
        // 根据配置文件,创建一个 SqlSessionFactory 对象
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        // 获取 SqlSession 实例,可以执行已经映射的 sql 语句
        try (SqlSession session = sqlSessionFactory.openSession()) {
            User User = (User) session.selectOne("org.mybatis.example.UserMapper.selectUser", 3);
            System.out.println(User);
        }
    }
}


  • 第一步:根据全局的配置文件创建一个 SqlSessionFactory 对象


  • 第二步:获取 SqlSession 实例,执行已经映射的 sql 语句。selectOne(),分别传入唯一标识和参数


执行一下,发现报错了:


1268169-20211111000053005-1023345564.png


原来映射sql的xml文件没有在全局配置文件里注册。修改mybatis-config.xml中的mappers标签:


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


再重新执行一下


1268169-20211111000728469-1051515515.png


查询成功。


这里仅仅是个简单查询,就相当于写了个 helloword,后续还有更多关于 mybatis 的学习。

相关文章
|
3月前
|
关系型数据库 Java 数据库连接
MyBatis-Plus简介和入门操作
【1月更文挑战第5天】 一、MyBatis-Plus简介 二、 MyBatis-Plus操作 1、准备数据库脚本 2、准备boot工程 3、导入依赖 4、配置文件和启动类 5、功能编码 6、测试和使用
105 1
|
3月前
|
SQL Java 数据库连接
JAVAEE框架技术之7-myBatis ORM框架入门基础CRUD
JAVAEE框架技术之7-myBatis ORM框架入门基础CRUD
90 0
JAVAEE框架技术之7-myBatis ORM框架入门基础CRUD
|
29天前
|
SQL JavaScript Java
mybatis-flex入门体验(一)
`shigen`,一个专注于Java、Python、Vue和Shell的博主,分享成长和认知。近期探索了`mybatis-flex`,通过官网学习了代码生成和编码体验。配置数据源和依赖后,利用示例代码生成了符合Lombok+MyBatis Plus规范的实体和Mapper。此外,展示了如何配置SQL打印,并用测试代码演示了查询、多条件查询和更新操作。`mybatis-flex`的亮点在于流畅的查询语法和连表查询功能。后续将分享更多关于连表查询的实践。一起学习,每天进步!
33 0
mybatis-flex入门体验(一)
|
1月前
|
算法 测试技术 开发者
软件质量保证与测试知识点总结
【2月更文挑战第21天】软件质量保证与测试知识点总结
56 0
|
1月前
|
Java 数据库连接 mybatis
|
2月前
|
XML Java 数据库连接
MyBatis入门配置
【2月更文挑战第9天】
MyBatis入门配置
|
3月前
|
Java 数据库连接 API
MyBatis入门操作
MyBatis入门操作
11 0
|
3月前
|
Java 数据库连接 测试技术
【MyBatis】操作数据库——入门
【MyBatis】操作数据库——入门
|
3月前
|
SQL Java 关系型数据库
一文彻底搞懂Mybatis系列(一)之mybatis入门
一文彻底搞懂Mybatis系列(一)之mybatis入门
|
4月前
|
SQL Java 数据库连接
MyBatis Plus 入门
MyBatis Plus 入门
50 0