Mybatis使用

一、什么是MyBatis,为什么学习?怎么入门

1.1 官网学习链接:Mybatis官网

注意:

在学习这个以前最好先去找一下相关Maven项目构建的学习,以为我们的基础都是建立在maven项目的基础上

1.2 开发工具和用前准备

  • idea官网去下载idea环境,idea优秀的自动补全和丰富的插件库能够很好的帮助你入门Mybatis
  • 安装 MyBatisX 插件,这款插件后续会做介绍,先安装。

在这里插入图片描述

1.3 Mybatis说明

  • 要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可。

  • 如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中:

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>x.x.x</version>
</dependency>

MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

二、开始Mybatis学习

2.1 过去的JDBC

Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://(ip):3306/db1";
String username="root";
String password="****";
Connection conn =  DriverManager.getConnection(url,username,password);
String sql= "UPDATE accout set money =2000 WHERE id=1";
  • 在JDBC中,虽然看上去它的代码与Mybatis构建没有太大不同,但是你会发现,如果我们需要对一个数据进行更改的时候就会非常不便利,需要修改代码才能达到效果。

2.2 Mybatis取代

String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  • 你会发现在上面的代码里,没有出现一个有关的信息,那是因为我们都配置到org/mybatis/example/mybatis-config.xml这里(路径随变化而变化,但是末尾是一样的),那是不是就意味着,后续需要信息修改是不是都可以通过对.xml文件进行修改,就不用查看相关代码了!我们看一下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>

另外,补充一点,在这里的driver,url,username等是可以自己写入或是手动进行添加的,这就减少了未来的未来维护成本

  • 那么问题来了,sql代码哪里去了,我要怎么获取数据呢?,上面的mapper标签干啥用的?

2.3 sql语句xml方式写入

  • 通过下面的xml,是不是就将mybatis-config.xmlBlogMapper.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="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>

一个类似加载驱动,一个类型sql语句。那么如何来执行语句呢?

  • 在JDBC中,我们是通过代码定义,调用**PreparedStatement(sql)**的相关方法。那么,在Mybatis中,也提供了相关类实现
 //3. 获取Mapper接口的代理对象
        BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);
 //4. 执行方法
        brandMapper.deleteByIds(ids);

而类似上述的删除操作,我们是如何实现的呢?

2.4 mapper操作类实现

定义一个Mapper操作类,用来调用(sql).xml的方法定义,并对象外部的操作实现
Mapper类:

void deleteByIds(int[] ids);

(sql).xml

<delete id="deleteById">
        delete from tb_brand where id = #{id};
    </delete>

通过delete相同命名,实现对应,但是没有路径,怎么对应呢?

  • 保证.xml文件路径和Mapper类的路径在编译后在同一目录下

在这里插入图片描述

2.5 工具MybatisX介绍

你有没有发现,如果来回的写.xml和Mapper类,名字要对应好是不是非常容易出错,那么插件安装后,你会发现写好类方法,或者.xml文件,就能够自动实现定位了。

在这里插入图片描述

三、Mybatis其他详细使用学习

3.1 学习方式

  1. 官网学习
  2. 相关课程学习
  3. 询问作者

3.2 学习结束语

  • 或许刚开始学习框架知识,都存在一定的难度,后续包括Spring之类的框架,也都是基于xml文件配置实现,因此,打好基础,切勿急成。
  • 笔记的重要性,对于自己觉得好的,一定要记下,学习完一个阶段后,写笔记同时也能够巩固,加深理解,可能不懂的,也会在这个过程中发现
  • 使用框架的建议,对于一些自己很难通过手敲出的代码,特别是一些说明部分,不需要记忆,把这部分记下来,下次用的时候复制才是最好的选择,用的多了,就记住了。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值