MyBatis--快速入门

这篇具有很好参考价值的文章主要介绍了MyBatis--快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MyBatis--1.快速入门

MyBatis简介

原始jdbc操作的弊端

  1. 创建、释放频繁导致系统资源浪费
  2. sql语句在代码中硬编码,不易维护
  3. 查询操作时,需要手动将结果集中的数据封装到实体中。插入操作同理需要手动

解决方案:

  1. 使用数据库连接池初始化连接资源
  2. 将sql语句抽取到xml配置文件中
  3. 使用反射、内省等底层技术,自动将实体与表进行属性和字段的自动映射

MyBatis简介

mybatis 是一个优秀的基于java的持久层框架,它内部封装了 jdbc,使开发者只需要关注sql语句本身,而不需要花费精力 去处理加载驱动、创建连接、创建statement等繁杂的过程。

mybatis通过xml或注解的方式将要执行的各种 statement配 置起来,并通过java对象和statement中sql的动态参数进行 映射生成最终执行的sql语句。

最后mybatis框架执行sql并将结果映射为java对象并返回。采 用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了 封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作 。

MyBatis快速入门

MyBatis开发步骤:

  1. 添加MyBatis的坐标

        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.32</version>
            </dependency>
    
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.6</version>
            </dependency>
    <!--        测试-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.2</version>
                <scope>test</scope>
            </dependency>
    <!--        日志-->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.12</version>
            </dependency>
        </dependencies>
    
  2. 创建user数据表

    MyBatis--快速入门

  3. 编写user实体类

    public class User {
        private int id;
        private  String username;
        private  String password;
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username='" + username + '\'' +
                    ", password='" + password + '\'' +
                    '}';
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    }
    
  4. 编写映射文件UserMapper.xml(写sql语句)

    <?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">
    <!--namespace命名空间-->
    <mapper namespace="userMapper">
    <!--    resultType是得到的结果封装成的对象-->
        <select id="findAll" resultType="com.xxx.User">
            select  * from user
        </select>
    
    </mapper>
    
  5. 编写核心文件SqlMapConfig.xml(mybatis配置文件)

    <?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>
    <!--    配置数据源的环境 default默认环境的id-->
        <environments default="development">
            <environment id="development">
    <!--            事务管理器-->
                <transactionManager type="JDBC"></transactionManager>
    <!--            数据源类型,本处为池型-->
                <dataSource type="POOLED">
    <!--                配置-->
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/jdbcstudy"/>
                    <property name="username" value="root"/>
                    <property name="password" value="123456"/>
                </dataSource>
            </environment>
        </environments>
        
        <!--    加载映射文件-->
        <mappers>
            <mapper resource="com/xxx/mapper/UserMapper.xml"/>
        </mappers>
    </configuration>
    
  6. 编写测试类

    在test目录下创建一个测试类

package com.xxx;

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 org.apache.log4j.lf5.util.Resource;
import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class test {
    @Test
    public  void  test1() throws IOException {
//        获取配置文件Resources是ibatis包下的
        InputStream resourceAsFile = Resources.getResourceAsStream("sqlMapConfig.xml");
//        获得session工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsFile);
//        获得session会话对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
//        执行操作,userMapper是映射文件中的一个命名空间,findAll是该命名空间下的一个id
        List<User> userList = sqlSession.selectList("userMapper.findAll");
//        打印数据
        System.out.println(userList);
//        释放资源
        sqlSession.close();
    }
}

结果:

MyBatis--快速入门

映射文件概述

MyBatis--快速入门

MyBatis增删改查

insert操作

映射文件中:

<!--    插入 parameterTyp是传入参数-->
    <insert id="save" parameterType="com.xxx.User">
--         参数是com.xxx.User的属性名
        insert  into user values (#{id},#{username},#{password})
    </insert>

测试:

//        模拟user对象
        User user = new User();
        user.setId(5);
        user.setPassword("123456");
        user.setUsername("lili");
//        获取配置文件Resources是ibatis包下的
        InputStream resourceAsFile = Resources.getResourceAsStream("sqlMapConfig.xml");
//        获得session工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsFile);
//        获得session会话对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
//        执行操作,userMapper是映射文件中的一个命名空间,findAll是该命名空间下的一个id
        sqlSession.insert("userMapper.save",user);
//      MyBatis更新时需要手动提交事务,在sqlSessionFactory.openSession()设置参数为true会自动提交
		sqlSession.commit();
//        释放资源
        sqlSession.close();

相关注意:

MyBatis--快速入门

update操作

<update id="update" parameterType="com.xxx.User">
    update user  set  username=#{username},password=#{password} where id=#{id}
</update>

测试和insert同理,只需要修改

 sqlSession.update("userMapper.update",user);

delete操作

<delete id="delete"  parameterType="java.lang.Integer">
    delete from user where  id=#{id}
</delete>

测试和insert同理,只需要修改

sqlSession.delete("userMapper.delete",7);

MyBatis核心配置文件

environments标签介绍

MyBatis--快速入门

事务管理器和数据源类型:

MyBatis--快速入门

mappers标签

使用mapper加载映射时,加载方式有:
MyBatis--快速入门

Properties标签

实际开发中,习惯将数据源的配置信息单独抽取为一个properties文件,改标签可以加载额外配置的properties文件

MyBatis--快速入门

typeAliases标签

MyBatis--快速入门

MyBatis的相应API

sqlSession工厂构造器sqlSessionFactoryBuilder

MyBatis--快速入门

sqlSessionFactory

MyBatis--快速入门

sqlSession

MyBatis--快速入门文章来源地址https://www.toymoban.com/news/detail-644915.html

到了这里,关于MyBatis--快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MyBatis 快速入门(上)

    MyBatis 是一款优秀的 持久层框架 (将电脑中的数据保存到磁盘上) , 它支持 自定义 SQL , 存储过程以及高级映射 . MyBatis 去除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作 . MyBatis 可以通过简单的 xml 或 注解 来配置和映射原始类型 , 接口和 java POJO (plain old java objects

    2024年02月07日
    浏览(18)
  • Mybatis-Plus快速入门

    目录   一、基础工程 1、创建一个数据库:mp 2、添加数据 3、创建初始工程  4、添加依赖 二、Mybatis + Mybatis-Plus 1、创建子工程:mybatis-plus-simple 2、在子工程下添加配置 2.1Mybatis实现查询User 2.1.1、编写User实体对象 2.1.2、编写UserMapper接口 2.1.3、编写UserMapper.xml文件 2.1.4、编写

    2024年02月10日
    浏览(42)
  • MyBatis基础知识和快速入门、MyBatis核心配置文件讲解

    什么是Mybatis MyBatis 是一个优秀的基于java的 持久层框架 ,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。 mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中

    2024年02月04日
    浏览(107)
  • 【Mybatis-Plus】Mybatis-Plus快速入门

    Mybatis-Plus是基于Mybatis的数据库操作组件,其实现的功能完全是Mybatis的功能拓展,不改变Mybatis的使用方式,可以兼容Mybatis的操作方式。 创建一个数据库、一个表进行基础操作: 创建一个Spring项目,项目通过Spring Initlizer创建,不导入任何依赖包,在POM.xml文件中进行依赖导入

    2024年02月07日
    浏览(47)
  • 5.2 Mybatis快速入门,轻松学会常用12种注解开发

    通过 《上文》,我们完成了 SpringBoot整合Mybatis ,那么接下来,我们就来使用Mybatis访问MySQL数据库! MyBatis的强大在于它的语句映射,它提供了 注解和XML映射 两种方式,都是为了减少我们的使用成本,屏蔽JDBC代码细节,节省代码,从而让我们更专注于SQL代码!本文主要使用

    2023年04月25日
    浏览(43)
  • Spring 整合 Mybatis -- Spring快速入门保姆级教程(四)

    为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。 (博客的参考源码可以在我主页的资源里找到,如果在学习的

    2024年02月07日
    浏览(65)
  • mybatis入门的环境搭建及快速完成CRUD(增删改查)

                                                                                           又是爱代码的一天  MyBatis 的背景可以追溯到 2002 年,当时 Clinton Begin 开发了一个名为 iBATIS 的持久化框架。iBATIS 的目标是简化 JDBC 编程,提供一种 更直观、易用 的方式来处理

    2024年02月11日
    浏览(43)
  • 从零开始快速搭建SpringBoot+Mybatis+小程序应用--微信小程序的入门和前后端的联调

    目录 项目介绍  vx小程序简介 VX开发工具介绍 列表页开发 list的编写   列表页前后端联调  信息编辑页开发 operation的编写 区域信息编辑页的联调 从0搭建后端的Springboot+mybatis框架 实现后端的业务功能 实现本地微信小程序的前端开发 前端与后端的调控 技术储备要求 1.基础的

    2024年02月10日
    浏览(70)
  • 基于Spring boot和Mybatis外卖项目瑞吉外卖Day9-Redis的快速入门

    4.1 Redis数据结构介绍 Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样: 贴心小建议:命令不要死记,学会查询就好啦 Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网( https://redis.io/commands )可以查看到不同的命令: 当然我们

    2023年04月09日
    浏览(52)
  • 1 快速构建mybatis项目

            注意是不出现w的quickstart:         注意加了插件后dao的xml文件才能加载到target的classes中:         注意:需要修改的有namespace、id、resultType;sql语句后面不写分号;         要修改的部分:         1.property name=\\\"url\\\" value=\\\"jdbc:mysql://localhost:3306/ study ?useUnicode=

    2024年02月16日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包