MyBatis快速入门01(增删改查基础使用)

3 篇文章 0 订阅
2 篇文章 0 订阅
本文介绍了MyBatis的基本概念和特点,包括官方简介、简单易学、sql语句与编程分离等。详细讲解了如何在IDEA和Maven环境下配置MyBatis,从创建xml配置文件、编写工具类到实现查询和增删改的接口及xml文件,最后展示了测试方法和参数传递方式。
摘要由CSDN通过智能技术生成

前提

1、了解数据库、JDBC、maven等基础知识。
2、本文用idea,maven来说明。

一、MyBatis简介

1、官方简介

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2、特点

(1)简单易学
(2)接除sql语句与编程代码的糅合
(3)简洁

3、使用方法

1、从SqlSessionFactoryBuilder类、xml文件中构建SqlSessionFactory类。
(SqlSessionFactory可以理解为连接数据库的连接池)
2、每次操作,在这个SqlSessionFactory中可以得到SqlSession,用于进行业务处理。(例如,查询、修改数据库内容等)

二、使用mybatis对数据库增删改查

1、环境配置

(1)创建maven项目
在pom.xml中最好加上如下配置,防止资源无法导出。

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>

            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

(2)导入包

2、第一个mybatis程序(查询)

(1)编写xml配置文件

  • 在resources下创建mybatis-config.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://localhost:3306/project01?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

(2)编写工具类(建造SqlSessionFactory,获取SqlSession)

  • 创建mybatisUtil类
    在这里插入图片描述
package 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;
public class mybatisUtil {
    public static SqlSessionFactory sqlSessionFactory = null;
    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//建造sqlsession工厂
        }catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession(); //获取SqlSession的方法
    }
}

(3)编写实体类(pojo)

  • 根据自己的数据库编写对应的实体类
    在这里插入图片描述
package pojo;
public class users {
    private int id;
    private String username;
    private String password;
    private String email;
    public users(){
    }
    public users(int id, String username, String password, String email) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.email = email;
    }
    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;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}

(4)编写接口、实现接口xml文件

  • 接口和xml文件最好放在同一个包下并且同名
    在这里插入图片描述
  • 实体类接口,查询
package dao_mapper;

import pojo.users;

import java.util.List;

public interface usersMapper {
    List<users> getUsersList();
}
  • 实现接口的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="dao_mapper.usersMapper">
    <select id="getUsersList" resultType="pojo.users">
        select * from users;
    </select>
</mapper>

(5)在总xml配置文件中注册刚刚写的小xml文件

  • 打开mybatis-config.xml
    在这里插入图片描述
  • 加上如下代码
<mappers>
       <mapper resource="dao_mapper/usersMapper.xml"/>
   </mappers>

在这里插入图片描述

(6)测试

  • 创建测试类
    在这里插入图片描述
    在这里插入图片描述
import dao_mapper.usersMapper;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import pojo.users;
import util.mybatisUtil;

import java.util.List;

public class test {
    @Test
    public void test() {
        SqlSession sqlSession = mybatisUtil.getSqlSession();
        usersMapper mapper = sqlSession.getMapper(usersMapper.class);

        List<users> usersList = mapper.getUsersList();

        for (users users : usersList) {
            System.out.println(users.getUsername());
        }
        
        sqlSession.close();
    }
}
  • 输出结果
    在这里插入图片描述

3、增删改的写法

  • 类似上面查询写法,只需要写接口和xml文件就可以了。
  • 多了一个就是传参数问题。
  • 使用实体类传参
  • 使用map传参
    parameterType为设置传进来的参数类型,如下图,pojo.users表示传进来的参数为pojo包下的users类,即我写的实体类
    那么,如何取出参数呢,使用#{},可以直接取出实体类中的字段的值。
	--------增-------
    <insert id="addUser" parameterType="pojo.users">
        insert into users(username,password,email) values(#{username},#{password},#{email})
    </insert>
    
    --------删-------
    <delete id="deleteUser" parameterType="String">
        delete from users where email=#{email}
    </delete>

	--------改-------
    <update id="updateUser" parameterType="pojo.users">
        update users set username=#{username},password=#{password} where email=#{email}
    </update>
  • 增删改查完整的xml文件
  • 在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值