一文彻底搞懂Mybatis系列(一)之mybatis入门

墨蓝 2024-04-03 08:16 173阅读 0赞

往期文章:
一文彻底搞懂Mybatis系列(一)之mybatis入门
一文彻底搞懂Mybatis系列(二)之mybatis事务管理机制深度剖析
一文彻底搞懂Mybatis系列(三)之mybatis完成增删改查CURD功能超级详细
一文彻底搞懂Mybatis系列(四)之mybatis核心配置文件详解
一文彻底搞懂Mybatis系列(五)之手写Mybatis框架简单探索版
一文彻底搞懂Mybatis系列(六)之在WEB应用中使用Mybatis
一文彻底搞懂Mybatis系列(七)之使用Mybatis的小技巧
一文彻底搞懂Mybatis系列(八)之Mybatis参数处理
一文彻底搞懂Mybatis系列(九)之Mybatis动态SQL标签总结
一文彻底搞懂Mybatis系列(十)之SqlSession、SqlSessionFactory和SqlSessionFactoryBuilder详解
一文彻底搞懂Mybatis系列(十一)之MyBatis多对一映射查询
一文彻底搞懂Mybatis系列(十二)之MyBatis多对一映射延迟加载(association和lazyLoadingEnabled)
一文彻底搞懂Mybatis系列(十三)之MyBatis一对多映射查询
一文彻底搞懂Mybatis系列(十四)之MyBatis一级缓存
一文彻底搞懂Mybatis系列(十五)之MyBatis二级缓存
一文彻底搞懂Mybatis系列(十六)之MyBatis集成EhCache
一文彻底搞懂Mybatis系列(十七)之MyBatis使用分页插件PageHelper

一、mybatis的本质

  1. mybatis本质上就是对JDBC的封装,是一个持久层框架

二、ORM思想的深入理解和mybatis的特点

1、ORM思想:对象关系映射

O : jvm中的java对象
R:关系型数据库
M:映射

在这里插入图片描述
在这里插入图片描述

mybatis框架就是一个ORM框架
mybatis可以干什么?
java对象<—>数据库表中的一条记录

2、mybatis的特点

mybatis是一个半自动化的ORM框架,因为在mybatis框架中,sql语句需要程序员自己编写

Hibernate框架就是一个全自动化的ORM框架,使用Hibernate框架的时候,不需要程序员手动编写SQL语句,SQL语句是自动生成的。

三、mybatis的入门程序

1、先准备mysql表

  1. SET NAMES utf8;
  2. SET FOREIGN_KEY_CHECKS = 0;
  3. -- ----------------------------
  4. -- Table structure for t_car
  5. -- ----------------------------
  6. DROP TABLE IF EXISTS `t_car`;
  7. CREATE TABLE `t_car` (
  8. `id` int(11) NOT NULL AUTO_INCREMENT,
  9. `car_num` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
  10. `brand` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
  11. `guide_price` decimal(10, 2) NULL DEFAULT NULL,
  12. `produce_time` char(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
  13. `car_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
  14. PRIMARY KEY (`id`) USING BTREE
  15. ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
  16. SET FOREIGN_KEY_CHECKS = 1;

2、加入mybatis依赖,加入mysql驱动依赖

  1. <dependency>
  2. <groupId>org.mybatis</groupId>
  3. <artifactId>mybatis</artifactId>
  4. <version>3.5.10</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>mysql</groupId>
  8. <artifactId>mysql-connector-java</artifactId>
  9. <version>8.0.30</version>
  10. </dependency>

3、编写mybatis核心配置文件:mybatis-config.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <environments default="development">
  7. <environment id="development">
  8. <transactionManager type="JDBC"/>
  9. <dataSource type="POOLED">
  10. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  11. <property name="url" value="jdbc:mysql://localhost:3306/powernode"/>
  12. <property name="username" value="root"/>
  13. <property name="password" value="root"/>
  14. </dataSource>
  15. </environment>
  16. </environments>
  17. <mappers>
  18. <mapper resource="CarMapper.xml"/>
  19. </mappers>
  20. </configuration>

注意:

  1. 这个xml文件名不是必须要叫mybatis-config.xml,可以叫其他名字。
  2. 这个文件存放的位置也不是固定的,可以随意,但一般情况下,是放在根目录下

4、从XML 中构建 SqlSessionFactory

5、mybatis有两个注意的配置文件

(1)一个是 mybatis-config.xml,这个是核心配置文件,主要配置连接数据库的信息(一个)
(2)另外一个是,XxxxMapper.xml文件,用来配置sql语句(一个表一个)

6、编写mapper.xml文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="jskdlf">
  6. <insert id="">
  7. insert into t_car (id,car_num,brand,guide_price,produce_time,car_type)
  8. values (null ,1003,'auto',30.0,'2020-01-02','燃油')
  9. </insert>
  10. </mapper>

7、编写mybatis程序代码

  • 在mybatis中,负责执行sql语句的那个对象叫 SqlSession。
    要想获取SqlSession对象,需要先获取SqlSessionFactory对象,
    要获取SqlSessionFactory对象,需要通过SqlSessionFactoryBuilder的build方法来得到SqlSessionFactory对象。

    package com.ba01.dao;

    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;

    import java.io.IOException;

    public class Test
    {

    1. public static void main(String[] args) throws IOException {
    2. SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    3. SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));
    4. SqlSession sqlSession = sqlSessionFactory.openSession();
    5. int insertCar = sqlSession.insert("insertCar");
    6. sqlSession.commit();
    7. }

    }

    运行结果

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,173人围观)

还没有评论,来说两句吧...

相关阅读