mybatis之入门

houj      2022-05-20     324

关键词:

mybatis从18年10月开始接触,一直有使用,和断断续续的学习,但是不敢说完全掌控,隔一段时间不用,就忘了如何搭建。这段时间学习重心放到JavaEE,我决定完整的学习下SSM,记录下我的历程,以后忘了回来翻一翻,比写成本地文档要方便。

mybatis也可以在普通的Java项目中使用,不一定要Web项目。

mybatis核心组件:

  • SqlSessionFactoryBuilder()构造器:它会根据配置或代码来生成SqlSessionFactory,采用的是分步构建的Builder模式
  • SqlSessionFactory 工厂对象:依靠它来生成SqlSession,使用的是工厂模式;
  • SqlSession 会话:一个即可以发送SQL执行返回结果,也可以获取Mapper接口。在现有的技术中,一般我们会让其在业务逻辑代码中消失,而使用的是mybatis提供的SQL Mapper 接口编程技术,它能提高代码的可读性和可维护性。
  • SQL Mapper 映射器:Mybatis新设计的组件,它有一个Java接口和XML文件(注解)构成,需要给出相应的SQL和映射规则。它负责发送SQL去执行并返回结果。

  以上这段精辟的文字摘自《JavaEE互联网轻量级框架整合》。

使用mybatis第一步,在src下建立一个“mybatis-config.xml”文件,xml文件的内容不需要记住,可以从mybatis 的介绍文件中拷贝,介绍文件在下载的包中。

技术图片

 

 

 拷贝后修改为自己的相关信息;<mappers></mappers>标签中放的是 映射器的xml文件位置。所谓映射器就是一个dao层下一个xx接口和xx.xml文件组成一个映射器。

第二步:建立dao层、pojo层,和其中的文件

技术图片

 

 

 

public interface StudentMapper {
    List<Student> getList();
    
    int add(Student student);
    
    int delete(int id);
    
    int update(Student student);
}
<?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="com.houjun.dao.StudentMapper"><!-- namespace是绑定的接口全限定名 -->
 <select id="getList" resultType="student">
 select * from student 
 </select>
</mapper>
package com.houjun.pojo;

public class Student {
    private String name;
    private int id;
    private int age;
    private int tig;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getTig() {
        return tig;
    }
    public void setTig(int tig) {
        this.tig = tig;
    }
    @Override
    public String toString() {
        return "Student [name=" + name + ", id=" + id + ", age=" + age + ", tig=" + tig + "]";
    }
    
}

第三步:测试成果

自己找个地新建一个测试类

public static void main(String[] args) throws SQLException {
        SqlSessionFactory sessionFactory = null;
        try {
            InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
            sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
            SqlSession session = sessionFactory.openSession();

            Connection connection = session.getConnection();
            Statement createStatement = connection.createStatement();
            ResultSet executeQuery = createStatement.executeQuery("select * from student");
        //回忆初学所用的原生JDBC写法
            while (executeQuery.next()) {//一行一行循环
                System.out.println(executeQuery.getInt(1) + executeQuery.getString(2) + executeQuery.getString(3));
            }
            System.out.println();
            //方式一 推荐
            StudentMapper mapper = session.getMapper(StudentMapper.class);
            List<Student> list = mapper.getList();
            for (Student student : list) {
                System.out.println(student);
            }
            //方式二
//            List<Student> selectList =  session.selectList("select * from student");不能直接运行sql语句
            List<Student> selectList = session.selectList("com.houjun.dao.StudentMapper.getList");//参数是映射器xml文件中的方法
            for (Student student : selectList) {
                System.out.println(student);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

 

mybatis之入门

mybatis从18年10月开始接触,一直有使用,和断断续续的学习,但是不敢说完全掌控,隔一段时间不用,就忘了如何搭建。这段时间学习重心放到JavaEE,我决定完整的学习下SSM,记录下我的历程,以后忘了回来翻一翻,比写成本地... 查看详情

深入浅出mybatis之快速入门!

简介MyBatis的前身叫iBatis,本是apache的一个开源项目,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参... 查看详情

深入浅出mybatis之快速入门!

简介MyBatis的前身叫iBatis,本是apache的一个开源项目,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参... 查看详情

mybatis之generator入门及使用方法

mybatis之generator入门及使用方法_花洒曾记否的博客-CSDN博客一、generator简介MyBatisGenerator(MBG)是MyBatisMyBatis和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或... 查看详情

mybatis之generator入门及使用方法

mybatis之generator入门及使用方法_花洒曾记否的博客-CSDN博客一、generator简介MyBatisGenerator(MBG)是MyBatisMyBatis和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或... 查看详情

mybatis入门联查之一对多

上一章说了多对一,很多学生被一个老师教,这一章是一个老师教很多学生 目录基本没有变化只是改了配置文件:   2、配置文件:TeacherMapper接口类:packagecom.hdlf.dao;importcom.hdlf.pojo.student;importcom.hdlf.pojo.teacher;import... 查看详情

mybatis入门系列三之类型转换器

mybatis入门系列三之类型转换器 类型转换器介绍mybatis作为一个ORM框架,要求java中的对象与数据库中的表记录应该对应因此java类名-数据库表名,java类属性名-数据库表字段名,java类属性类型-数据库字段类型前面两个都容易设... 查看详情

mybatis框架之入门(代码片段)

什么是框架  框架就是一个架子,表演节目,舞台已经搭建好,表演什么节目,看自己的需求了。  框架是一个半成品,对于Java语言来说,框架就是封装了别人的代码。在框架的基础上我们在进一步开发,拿来主义。框架... 查看详情

mybatis从入门到精通—源码剖析之二级缓存细节(代码片段)

⼆级缓存构建在⼀级缓存之上,在收到查询请求时,MyBatis⾸先会查询⼆级缓存,若⼆级缓存未命中,再去查询⼀级缓存,⼀级缓存没有,再查询数据库。⼆级缓存------》⼀级缓存------》数据库与⼀级缓存不同,⼆级缓存和具体... 查看详情

springboot入门之基于druid配置mybatis多数据源

...池的监控和慢sql处理,这篇了解下使用基于基于Druid配置Mybatis多数据源。SpringBoot默认配置数据库连接信息时只需设置url等属性信息就可以了,SpringBoot就会基于约定根据配置信息实例化对象,但是一般大型的项目都是有多个子系... 查看详情

mybatis-plus入门之activerecord模式(代码片段)

ActiveRecord介绍每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;ActiveRecord负责把自己持久化.在ActiveRecord中封装了对数据库的访问,通过对象自己... 查看详情

mybatis从入门到精通—源码剖析之延迟加载源码细节(代码片段)

什么是延迟加载?在开发过程中很多时候我们并不需要总是在加载⽤户信息时就⼀定要加载他的订单信息。此时就是我们所说的延迟加载。举个栗⼦:延迟加载就是在需要⽤到数据时才进⾏加载,不需要⽤到数据时就不加载数据... 查看详情

mybatsi学习

深入浅出Mybatis系列(一)---Mybatis入门深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis... 查看详情

java之springboot入门到精通idea版springboot整合其他框架junit,redis,mybatis(一篇文章精通系列)中(代码片段)

SpringBoot整合其他框架【Junit,Redis,MyBatis】一、SpringBoot整合Junit①搭建SpringBoot工程②引入starter-test起步依赖③编写测试类(1)在启动类傍边其他类④添加测试相关注解⑤编写测试方法二、SpringBoot整合Redis1、搭建SpringBoot工... 查看详情

mybatis从入门到放弃六:延迟加载一级缓存二级缓存

...么查询海量数据则又离不开性能,那么这篇中我们就看下mybatis高级应用之延迟加载、一级缓存、二级缓存。使用时需要注意延迟加载必须使用resultMap,resultType不具有延迟加载功能。 一、延迟加载    延迟加载... 查看详情

mybatis系列笔记---mybatis入门

mybatis入门 MyBatis是什么? MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。目前mybatis在github上托管。 git(分布式版本控制... 查看详情

mybatis入门

目录MyBatis入门MyBatis简介MyBatis的优势MyBatis开发步骤获取SqlSessionFactory对象访问数据库解决表字段与类属性名不对应使用日志查看SQL语句等MyBatis的配置文件核心配置文件环境配置事务管理数据源properties标签映射器别名的使用MyBatis... 查看详情

mybatis入门

首先给大家推荐几个网页:http://blog.csdn.net/isea533/article/category/2092001   没事看看-MyBatis工具:www.mybatis.tkhttp://www.mybatis.org/mybatis-3/zh/getting-started.html  入门http://www.mybatis 查看详情