首页 > 其他分享 >Mybatis

Mybatis

时间:2024-09-24 19:48:44浏览次数:8  
标签:MyBatis 1.2 mybatis sql Mybatis org

一、Mybatis概述

1.1简介

1.1.1 Mybatis介绍

MyBatis(官网:mybatis – MyBatis 3 | 简介icon-default.png?t=O83Ahttps://mybatis.org/mybatis-3/zh_CN/index.html )是一款优秀的开源的 持久层 框架,用于简化JDBC的开发。是 Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

1.1.2 特点

  • MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。

  • MyBatis封装了几乎所有的JDBC代码和参数的手工设置以及结果集的检索;

  • MyBatis使用简单的XML或注解做配置和定义映射关系,将Java的POJO(Plain Old Java Objects)映射成数据库中的记录。

 

持久层:指的是就是数据访问层(dao),是用来操作数据库的。

框架:是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。在框架的基础上进行软件开发更加高效、规范、通用、可拓展。

1.2 Mybatis快速入门

1.2.1准备数据(数据库构建)

-- 创建数据库mybatis_db, 设置编码集 UTF8
create database if not exists mybatis_db character set utf8;
-- 切换到mybatis_db数据库
use mybatis_db;

-- 创建学生信息表
create table `student`(
`id` int primary key auto_increment comment '学生ID,学生证ID',
`name` varchar(20) not null comment '学生名称',
`gender` char(1) not null comment '学生性别',
`age` int not null comment '学生年龄',
`address` varchar(50) not null comment '家庭地址'   
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生信息表';

-- 插入数据
insert into student values 
(1001,'刘备','m',40,'江南'),
(1002,'关羽','m',35,'上海'),
(1003,'虞姬','f',26,'北京'),
(1004,'赵云','m',27,'长春'),
(1005,'甄姬','f',26,'广州');

select * from student;

1.2.2创建模块,导入坐标

 <dependencies>
   <!--mybatis的依赖-->
   <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.5</version>
   </dependency>
   <!--mysql 驱动-->
   <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.31</version>
   </dependency>
   <!--junit 测试-->
   <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13</version>

<!--注意:下面语句( <scope>test</scope>)在测试后尽量删除,否则可能后续操作中部分功能失效-->
      <scope>test</scope>
   </dependency>
</dependencies>

1.2.3编写Mybatis核心配置文件 

替换连接信息,解决硬编码问题 文件名:mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://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://localhost:3306/mybatis_db?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;useTimezone=true"/>

                <!--密码和用户名也是用你自己的,别用我的啊!-->
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--配置相应的实体接口映射文件 resource属性里是文件的路径-->
        <mapper resource="UserMapper.xml"/>
    </mappers>
</configuration>

1.2.4编写sql映射文件 

统一管理sql语句,解决硬编码问题 文件名:UserMapper.xml(针对于User类)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--   属性 namespace:名称空间   建议:写相应实体接口的全名  -->
<mapper namespace="test">
    <select id="findAll" resultType="com.shuilidianli.pojo.User">
        select * from user;
    </select>
</mapper>

1.2.5 编写核心代码

① 根据数据库表,定义pojo类

② 加载核心配置文件,获取SqlSessionFactory对象

③ 获取SqlSession对象,执行sql语句

④ 释放资源

public static void main(String[] args) throws IOException {
   // 1. 加载mybatis的核心配置文件,获取SqlSessionFactory
   String resource = "mybatis-config.xml";
   InputStream inputStream = Resources.getResourceAsStream(resource);
   SqlSessionFactory sqlSessionFactory =
      new SqlSessionFactoryBuilder().build(inputStream);

   //2. 获取SqlSession对象,用他来执行sql
   SqlSession sqlSession = sqlSessionFactory.openSession();

   //3. 执行sql   调用selectList方法,传参 namespace.id,来指定要执行的sql语句
   List<User> users = sqlSession.selectList("test.findAll");
   System.out.println(users);

   //4. 释放资源
   sqlSession.close();
}

剩下的我慢慢更新! 

标签:MyBatis,1.2,mybatis,sql,Mybatis,org
From: https://blog.csdn.net/m0_72186118/article/details/142466232

相关文章

  • mybatis用的jdk的动态代理技术
    MyBatis的动态代理主要使用的是JDK动态代理技术。在MyBatis中,Mapper接口的实现是通过JDK动态代理生成的。具体来说,当你调用Mapper接口的方法时,MyBatis会通过JDK动态代理机制生成一个代理对象,代理对象会拦截对Mapper接口方法的调用,并将这些调用处理为相应的SQL操作。JDK动态代理......
  • SpringBoot-3.3.4最新快速入门教程二整合Mybatis
    Hello,大家好,我是Feri,一枚十多年的程序员,同时也是一名在读研究生,关注我,且看一个平凡的程序员如何在自我成长,CodingSir是我想打造一个编程社区,只为各位小伙伴提供编程相关干货知识,希望在自我蜕变的路上,我们一起努力,努力什么时候开始都不晚,我,从现在开始做起!一、前言     ......
  • Invalid bean definition with name ‘myBatisPlusApplication‘ defined in class pa
    目录问题出现背景问题分析问题解决一、背景        黑马课程的SSM框架里面的MyBatisPlus部分的学习,学习的是selecPage方法的测试时候出现的,因为要配分页的拦截器,所有定义了一个config的类,同时配了@Configuration(@Component好像也可正常使用),然后去到测试时候就......
  • mybatis中的generator的使用
    MyBatisGenerator(MBG)是一个用于自动生成MyBatis相关代码的工具。它可以生成实体类、Mapper接口、XML映射文件等。下面是一个详细的步骤指南,包括配置文件的编写和生成代码的过程。步骤1:添加依赖首先,在你的项目中添加MyBatisGenerator的依赖。如果你使用的是Ma......
  • 【PLW003】设备器材云端管理平台v1.0(SpringBoot+Mybatis+NodeJS+MySQL前后端分离)
    设备器材云端管理平台是一种专为各种设备(如教育行业中的实验设备、建筑行业中的施工设备等)租赁或共享孵化的数字化管理工具,旨在融合数字化手段,提高各种设备器材的管理效率、确保设备的安全稳定运行,并优化资源使用及配置效率。随着高新技术的不断发展和应用(如大数据、人工智能等新......
  • 用了MyBatis的项目 如何优雅地打印SQL
    前言在使用MyBatis或者MyBatis-Plus作为ORM框架的时候,会发现默认的日志输出是下面这样的:在参数少并且SQL简单的情况下,这样的SQL我们能通过手动去替换占位符,来获取到真正执行的SQL。但是如果是比较复杂的SQL,或者查询参数比较多的话,一个个替换就比较费时费力了。MyBatisPlugin......
  • MyBatis的配置文件详解
    01-MyBatis的配置文件详解创建的接口和xml文件的名字最好写一样的要不然会出问题,然后和接口名相同的xml文件在resources下创建个和接口相同文件夹把xml文件放进去,而且resources下的创建的文件夹需要一级一级的创键,比如:cn创建完,创建tulingxue,然后再创建mapper文件夹才行......
  • Mybatis相关知识总结
    目录1.什么是Mybatis?2.Mybatis所提供的功能?3.MyBatis的优缺点是什么?4.为什么说mybatis是半自动化orm映射工具?它与全自动的区别在哪里?5.Hibernate和Mybatis的区别?6.JDBC编程有哪些不足之处?Mybatis是如何解决这些问题的?7.Mybatis编程步骤是什么样的?【简化:见下】【详细:......
  • mybatis 配置文件完成增删改查(一)
    文章目录编写三步走查询所有编写接口方法编写sql语句执行方法,测试结果数据库字段名和实体类变量名不一致:ResultMap数据库字段名和实体类变量名不一致:方法二编写三步走编写接口方法:Mapper接口参数有无结果类型编写sql语句:sql映射文件执行方法,测试查询所有文件直......
  • MyBatis执行SQL的两种方式
    PUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="cn.cvs.dao.UserMapper"><!--查找所有的用户信息--><selectid="findAll"resultType="cn.c......