mybatis快速入门(保姆级教程)

mybatis快速入门

mybatis简介

MyBatis是一种Java持久化框架,用于简化数据库访问和操作。它提供了一种将SQL语句与Java代码解耦的方式,使开发人员能够更灵活地管理和操作数据库。

MyBatis的一些优点包括:

简化的SQL编写:MyBatis使用Mapper XML文件来组织和管理SQL语句,开发人员可以将SQL语句与Java代码分离,使代码更清晰、易于维护。

灵活性:MyBatis提供了灵活的映射机制,可以将查询结果映射为Java对象或集合。开发人员可以自定义映射规则,满足不同的业务需求。

缓存支持:MyBatis内置了缓存机制,可以缓存查询结果,提高查询性能。开发人员可以配置缓存策略,提供更好的性能优化。

扩展性:MyBatis提供了丰富的插件机制,开发人员可以通过插件扩展MyBatis的功能。例如,可以自定义插件来实现日志记录、动态SQL等功能。

总的来说,MyBatis具有灵活性、简化开发和性能优化等优点,使得它成为一个受欢迎的Java持久化框架。

mybatis快速入门

首先,我们新建一个maven项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述创建好项目之后,我们开始配置pom文件
在这里插入图片描述代码如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mybatisStu</groupId>
    <artifactId>MyBatis</artifactId>
    <version>1.0-SNAPSHOT</version>
<!--    引入mysql、mybatis、junit-->
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>

        </dependency>
    </dependencies>
<!--    在build中配置resources,来防止我们资源导出失败的问题-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>
</project>

在MyBatis模块下,新建一个模块
在这里插入图片描述在这里插入图片描述在这里插入图片描述建好后,在resource包下写一下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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
<!--                根据自身情况配置数据库-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://ip:端口/数据库名?useSSL=false"/>
                <property name="username" value="用户名"/>
                <property name="password" value="密码"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

写好mybatis配置文件后,我们创建一个数据库和相应的表单
这是创建数据库的语法格式

CREATE DATABASE your_database_name;

使用这个数据库

USE your_database_name;

然后创建表格

CREATE TABLE mybatisStu(
id INT,
age INT
)CHARSET=utf8;

这个表格有两个字段,一个是id,一个是age,接下来,我们写一个实体类,用来映射与数据库的关系
这是实体类的位置和代码
在这里插入图片描述

package com.mybatisStu.entity;

/**
 * @author zwp
 * @version 1.0
 */
public class MybatisStu {
//    这两个属性与数据库表单的属性名一致
    private Integer id;
    private Integer age;
//    无参构造器
    public MybatisStu() {
    }
//    有参构造器
    public MybatisStu(Integer id, Integer age) {
        this.id = id;
        this.age = age;
    }
//    get和set方法
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
// toString方法
    @Override
    public String toString() {
        return "mybatisStu{" +
                "id=" + id +
                ", age=" + age +
                '}';
    }
}

接下来,我们创建一个mapper包,里面包含一个接口和配置文件
mapper文件是Mybatis框架中定义SQL语句和映射关系的配置文件
这是具体位置和代码
在这里插入图片描述

package com.mybatisStu.mapper;

import com.mybatisStu.entity.MybatisStu;

/**
 * @author zwp
 * @version 1.0
 */
public interface MybatisStuMapper {
    public void addMybatisStu(MybatisStu mybatisStu);
}

在这里插入图片描述

<?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="com.zwp.mapper.MonsterMapper">

    <insert id="addMonster" parameterType="com.zwp.entity.Monster">
        INSERT INTO `monster` (`id`,`age`) VALUES (#{id},#{age});
    </insert>
</mapper>

写好后,把我们配置的MybatisStuMapper.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="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://ip:端口/数据库名?useSSL=false"/>
                <property name="username" value="用户名"/>
                <property name="password" value="密码"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/mybatisStu/mapper/MybatisStuMapper.xml"/>
    </mappers>
</configuration>

接下来,我们写一个工具类,获取连接
在这里插入图片描述

package com.mybatisStu.util;

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.InputStream;

/**
 * @author zwp
 * @version 1.0
 */
public class MyBatisUtils {
    private static SqlSessionFactory sqlSessionFactory;
    static {
        String resource = "mybatis-config.xml";
        try {
            InputStream resourceAsStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }
}

做好这些准备后,我们就可以开始 测试了
在这里插入图片描述

package com.mybatisStu.mapper;

import com.mybatisStu.entity.MybatisStu;
import com.mybatisStu.util.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;

/**
 * @author zwp
 * @version 1.0
 */
public class MybatisStuMapperTest {
    private SqlSession sqlSession;
    private MybatisStuMapper mybatisStuMapper;
    @Before
    public void init(){
        sqlSession = MyBatisUtils.getSqlSession();
        mybatisStuMapper = sqlSession.getMapper(MybatisStuMapper.class);
    }
    @Test
    public void addMonster(){
        MybatisStu mybatisStu = new MybatisStu();
        mybatisStu.setId(1);
        mybatisStu.setAge(18);
        mybatisStuMapper.addMybatisStu(mybatisStu);
        System.out.println("添加对象" + mybatisStu);
        if(sqlSession != null){
            sqlSession.commit();
            sqlSession.close();
        }
        System.out.println("保存成功");
    }
}

在这里插入图片描述
运行程序,出现如下结果
在这里插入图片描述再查看一下数据库
在这里插入图片描述
确实有数据添加进来了,说明我们成功的通过mybatis操作了数据库

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值