Mybatis

MyBatis 以前是apache的iBatis, 后来这个项目迁移到了google
code,并且改名为MyBatis,是一个数据持久层框架。

什么是数据持久层?

将内存中的数据模型与存储模型相互转化。 文件的存储、数据的读取都是数据持久化操作。

  • 数据模型:任何数据结构或对象的模型。
  • 存储模型:可以是关系模型、XML、二进制流等。

Mybatis简介

  • 一个开源的数据持久层框架。
  • 内部封装了通过JDBC访问数据库的操作,支持普通SQL查询、存储过程和高级映射,几乎消除了所有的JDBC代码参数的手工设置以及结果集检索
  • 主要思想:实现SQL语句的灵活配置,配置在配置文件中。
  • 可以在不修改代码的情况下,直接在配置文件修改SQL。
  • 一种半自动的ORM实现(手写SQL语句)。

什么是ORM?

ORM(Object/Relational Mapping) 对象关系映射,一种数据持久化技术。它将对象模型和关系型数据库直接建立起对应关系,通过JavaBean对象去操作数据库表的数据

Mybatis优缺点

优点

  • 封装了JDBC访问数据操作,减少代码量。
  • 灵活,SQL语句从代码中分离,降低耦合度,便于统一管理和优化,重用。
  • 提供XML标签,编写动态SQL。
  • 提供映射标签,支持对象与数据库ORM字段关系映射。

缺点

  • SQL编写太多。
  • SQL依赖数据库,不可随意更换数据库。

如何使用Mybatis?

创建一个空的Maven项目
导入mybatis依赖

    Mybatis支持
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.3</version>
    </dependency>
    数据库链接支持
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>

在资源目录下创建mybatis-condig.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="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://192.168.56.104:3306/mybatis_test?serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/liuy/springMybatis/dao/DeptMapper.xml"/>
    </mappers>
</configuration>

创建Mapper接口和Mapper.xml映射文件
在这里插入图片描述

<?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.liuy.springMybatis.dao.DeptMapper">
    <select id="selectDept" resultType="com.liuy.springMybatis.entity.Dept">
        select * from tbl_dept where id = #{id}
    </select>
</mapper>
public interface DeptMapper {
    Dept selectDept(int id);
}

创建接收查询结果的实体类Dept,与表字段对应

@Data
public class Dept {
    int id;
    String deptName;
    String locAdd;
}

使用Mybatis查一个数据

    public static void main(String[] args) throws IOException {
        //读取资源配置类
        InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
        //由文件流生成SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获取sqlSession会话
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //获取Mapper
        DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);
        //SQL语句查询数据
        Dept dept = mapper.selectDept(1);
        System.out.println(dept);
        //关闭会话
        sqlSession.close();
    }

查询结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值