代码编织梦想

一.Mybatis是什么?Mybatis的优点?

        MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML格式或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

优点:

1、简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

2、灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。

3、解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

4、提供映射标签,支持对象与数据库的orm字段关系映射

5、提供对象关系映射标签,支持对象关系组建维护

6、提供xml标签,支持编写动态sql。

二.Mybatis的功能框架

三.为什么要引入Mybatis(JDBC存在的问题)

1、数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。

2、Sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。

3、 使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。

4、 对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便。

四.使用Mybatis的步骤

1、 加载数据库驱动

2、 创建并获取数据库链接

3、 创建jdbc statement对象

4、 设置sql语句

5、 设置sql语句中的参数(使用                preparedStatement)

6、 通过statement执行sql并获取结果

7、 对sql执行结果进行解析处理

8、 释放资源(resultSet、preparedstatement、connection)

五.配置Mybatis的运行环境

java项目架构(也可以是maven)

jar包导入:

  mysql-connector-java-5.1.7-bin.jar可以参考文章使用JDBC连接数据库-CSDN博客

mybatis-3.1.1.jar的获取

前往项目概览 - mybatis-3 - GitCode下载

解压缩后为:图中所选即为实验所用jar包

java版本和mybatis版本对照表

数据库准备:

数据库名为u_student,表名为student

conf.xml文件编写

定义了驱动,url,用户名,密码,所连接的数据库

<?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">
<!--指定HTML文档遵循的文档类型定义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/u_student"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
   
</configuration>

六.使用Mybatis

1.定义表所对应的实体类Student

package Jdbc;

public class Student {
    public String name;
    public int age;
    public Student(){}
    public Student(String name,int age){
        this.name=name;
        this.age=age;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

2.定义操作Student表的sql映射文件studentMapper.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="Jdbc.studentMapper">
<select id="getStudent" parameterType="String" resultType="Jdbc.Student">
    select * from student where name=#{name}
</select>
</mapper>

3.在conf.xml文件中注册studentMapper.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">
<!--指定HTML文档遵循的文档类型定义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/u_student"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="Jdbc/studentMapper.xml"/>
    </mappers>
</configuration>

4.编写测试代码:执行定义的select语句

package Jdbc;

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;
import java.io.Reader;
import java.util.List;

public class Test {
    public static void main(String[] args) throws IOException {
        //加载mybatis的配置文件(它也加载关联的映射文件)
        String resource="conf.xml";
        Reader reader= Resources.getResourceAsReader(resource);
        //构建sqlSession的工厂
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
        //创建能执行映射文件中sql的sqlSession
        SqlSession session=sqlSessionFactory.openSession();
        //映射sql的标识字符串
        String statement="Jdbc.studentMapper.getStudent";
        //执行查询一个user对象的sql,依次为传过去的标识字符串和参数
        Student student=session.selectOne(statement,"zhangsan");
      
        System.out.println(student);
    }
}

5.针对CRUD的不同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="Jdbc.studentMapper">
<select id="getStudent" parameterType="String" resultType="Jdbc.Student">
    select * from student where name=#{name}
</select>
<select id="getStudents" resultType="Jdbc.Student">
    select * from student;
</select>
<insert id="insertStudent" parameterType="Jdbc.Student">
    insert into student(name,age) values(#{name},#{age})
</insert>
<delete id="deleteStudent" parameterType="String">
    delete from student where name=#{name}
</delete>
<update id="updateStudent" parameterType="Jdbc.Student">
    update student set name=#{name},age=#{age} where name=#{name}
</update>
</mapper>

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/M11031211/article/details/134914400

springboot mybatis连接mysql数据库_dmfrm的博客-爱代码爱编程

SpringBoot整合Mybatis还是比较简单的,本篇文章讲解使用Mapper.xml来写SQL。 (1)build.gradle文件添加依赖 // https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper compile group: 'com.githu

IDEA使用MyBatis连接Mysql数据库-爱代码爱编程

1.MyBatis中文网 地址:https://mybatis.net.cn/ 详细介绍了MyBatis 2.创建数据库和对应表 3.下载MyBatis依赖 访问Mybatis中文网 2.进入之后  滑到最下面,下载最新版本,也可以选择历史版本  4.下载mybatis压缩包  5.解压后得到  4.使用M

使用mybatis框架连接数据库_woovong的博客-爱代码爱编程

这种java框架自带链接池,不需要自己写,非常方便好用。 只需要三步:一个接口,一个实体类,两个配置文件。 先导包 去maven网址上找mybatis包(今天的主题)、mysql包(总要连数据库的吧)、lombok包(便捷工具): <dependency> <groupId>org.mybatis</groupId

【mybatis】使用mybatis框架连接mysql数据库详细步骤_一支猫咔qly的博客-爱代码爱编程

    和我之前写的通过导入jdbc驱动jar包来连接mysql数据库而言,用mybatis来说可以有很多好处呀,首先mybatis,就是对jdbc的优化方案对吧,,jdbc的硬编码和一些繁琐的操作在使用mybatis的时候我就彻底抛掷脑后了哈哈哈。    同时,mybatis在国内使用的持久层框架中占比也很高啊 所以对mybatis的学习,对我们

mybatis连接mysql数据库通过逆向工程简化开发流程-爱代码爱编程

文章目录 一、使用步骤1、建立新项目2、引入pom依赖3、创建逆向工程的配置文件 generatorConfig.xml4、运行逆行工程,生成代码文件 二、案例展示1、建立数据表2、改写对应的配置文件内容

springboot+mybatis连接mysql数据库_springboot使用mysql与mybatis数据库交互-爱代码爱编程

本篇文章为小白自学小记。                                项目结构:                                        1.创建数据库和数据表     2.创建实体(entity)User 注意User的属性要与数据库中的字段、类型保持一致。 package com.exa

使用spring boot和mybatis连接mysql数据库的方法_springboot集成 mysql 配置-爱代码爱编程

在Java开发中,Spring Boot和MyBatis是两个常用的框架,结合使用可以方便地连接和操作MySQL数据库。本文将详细介绍如何在Spring Boot项目中使用MyBatis框架连接MySQL数据库,并通过一个抖音视频数据存取操作的示例展示完整的增删改功能代码。 一、环境准备 Java开发环境:确保已安装JDK和IntelliJ IDEA。

二进制部署k8s集群之master节点和etcd数据库集群(上)-爱代码爱编程

二进制搭建 Kubernetes v1.20 k8s集群master01:20.0.0.20 kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02:20.0.0.30 k8s集群node01:20.0.0.40 kubelet kube-proxy docke

简单的 mongodb 学习-爱代码爱编程

简单的 mongoDB 学习 一. 下载与安装 1. 下载monagoDb 下载地址为 https://www.mongodb.com/try/download/community-kubernetes-operato

springboot使用mybatis连接mysql_spring boot mybits mysql-爱代码爱编程

[!NOTE] 本教程是《SpringBoot系列基础教程》之一,教程目录:https://blog.csdn.net/laisc7301/article/details/135918617 首先按照图示新建

mybatis与mysql关系阐述_mysql和mybatis的关系-爱代码爱编程

MyBatis是一个持久层(persistence layer)框架,用于简化Java应用程序与关系数据库(如MySQL)的交互。它通过消除大量冗余的JDBC代码,并提供了一个简单且易于使用的API,使得开发者可以更高效地进行数据库操作。以下是MyBatis与MySQL之间的关系和它们如何协同工作的详细说明: MyBatis的基本概念 SQL映射:M