• MyBatis快速入门


    MyBatis:1_快速入门

    一、MyBatis

    • MyBatis是一款优秀的持久层框架,用于简化JDBC开发
    • MyBatis本是Apache的一个开源项目iBatis,2010年由Apache Software Foundation迁移到Google Code,并且改名为MyBatis
    • 官网

    二、快速入门

    1. 添加maven依赖

    <dependencies>
            
            <dependency>
                <groupId>org.mybatisgroupId>
                <artifactId>mybatisartifactId>
                <version>3.5.10version>
            dependency>
        
            
            <dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
                <version>8.0.30version>
            dependency>
        
                
            <dependency>
                <groupId>junitgroupId>
                <artifactId>junitartifactId>
                <version>4.13version>
                <scope>testscope>
            dependency>
    
            
            <dependency>
                <groupId>org.slf4jgroupId>
                <artifactId>slf4j-apiartifactId>
                <version>2.0.0version>
            dependency>
    
            
            <dependency>
                <groupId>ch.qos.logbackgroupId>
                <artifactId>logback-classicartifactId>
                <version>1.2.11version>
                <scope>testscope>
            dependency>
    
            
            <dependency>
                <groupId>ch.qos.logbackgroupId>
                <artifactId>logback-coreartifactId>
                <version>1.2.11version>
            dependency>
    dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    2. mybatis-config.xml

    在maven项目的resources文件夹下新建一个mybatis-config.xml文件,将以下内容复制进去,同时修改配置信息

    • ${driver}:com.mysql.jdbc.Driver
    • ${url}:数据库url
    • ${username}:数据库用户名
    • ${password}:数据库密码
    • 留到下一部分修改
    
    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    3. Mapper.xml

    mappers 元素包含了一组映射器(mapper),这些映射器的 XML 映射文件包含了 SQL 代码和映射定义信息。

    由于在上一篇jdbc的文章中我们创建了一个student表(name: String, age: int),因此我们创建一个StudentMapper.xml。

    这是官网的例子

    
    DOCTYPE mapper
      PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="org.mybatis.example.BlogMapper">
      <select id="selectBlog" resultType="Blog">
        select * from Blog where id = #{id}
      select>
    mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    我们做一些修改:

    • 名空间namespace暂时改为test
    • id修改为selectAll,表示我们将通过这个映射获取表中的全部信息,当然它也可以是其他的名字
    • java/features文件夹中创建一个Student类与我们创建的表对应,然后将resultType值修改为类的路径features.Student
    • 在中填入select * from student;,不再赘述
    • 再回mybatis-config.xml中填我们刚刚挖的坑,将resource的值修改为StudentMapper.xml的路径:
    
    DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="test">
        <select id="selectAll" resultType="features.Student">
            select * from student;
        select>
    mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    4. Student类

    由于我们的student表中就两列,因此成员变量设置如下:

    private String name;
    private int age;
    
    • 1
    • 2

    然后为该类的所有成员变量设置默认的gettersetter方法即可,最后在添加一个toString()方法。

    5. main函数

    5.1 加载mybatis的核心配置文件,获取SqlSessionFactory
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    
    
    • 1
    • 2
    • 3
    • 4
    5.2 获取SqlSession对象,用它来执行sql
    SqlSession sqlSession = sqlSessionFactory.openSession();
    
    • 1
    5.3 执行sql
    List<Student> students = sqlSession.selectList("test.selectAll");
    System.out.println(students);
    
    • 1
    • 2
    • testStudentMapper.xml里的namespace
    • selectAll:查询映射的唯一标识
    5.4 释放资源
    sqlSession.close()
    
    • 1
    5.5 运行一下
    [Student{name='Lily', age=22}, Student{name='Tom', age=23}]
    
    • 1
  • 相关阅读:
    Altium Designer培训 | 2 - 原理图库创建篇
    JavaScript——BOM
    QtC++与QToolButton详解
    机器学习(17)---支持向量机(SVM)
    Nuxt3 的生命周期和钩子函数(二)
    码蹄集 - MT3251 - 多重回文
    图像分类(四) 全面解读复现GoogleNet_InceptionV1-V4
    计算机中CPU、内存、缓存的关系
    MacOS常见问题
    使用DataGrip对Hive进行操作
  • 原文地址:https://blog.csdn.net/cacique111/article/details/126551395