当前位置: 代码网 > it编程>编程语言>Java > Mybatis框架快速入门超详细教程

Mybatis框架快速入门超详细教程

2026年09月09日 Java 我要评论
mybatis是一款支持定制化 sql、存储过程以及高级映射的轻量级半自动 orm 框架。它不仅仅可以与mysql一起用,pg也可以。官方文档:mybatis 3 | introduction &nd

mybatis 是一款支持定制化 sql、存储过程以及高级映射的轻量级半自动 orm 框架。它不仅仅可以与mysql一起用,pg也可以。

官方文档:mybatis 3 | introduction – mybatis

想要了解更多可以去官网看看,里面有中文版。

一、开发步骤

1. 添加mybatis坐标

<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/maven-v4_0_0.xsd">
  <modelversion>4.0.0</modelversion>
  <groupid>com.itheima</groupid>
  <artifactid>ithiema_mybatis_quick</artifactid>
  <packaging>war</packaging>
  <version>1.0-snapshot</version>
  <name>ithiema_mybatis_quick maven webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupid>junit</groupid>
      <artifactid>junit</artifactid>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
      <dependency>
          <groupid>com.mchange</groupid>
          <artifactid>c3p0</artifactid>
          <version>0.9.5.2</version>
      </dependency>
      <dependency>
          <groupid>mysql</groupid>
          <artifactid>mysql-connector-java</artifactid>
          <version>8.0.28</version>
      </dependency>
      <dependency>
          <groupid>com.alibaba</groupid>
          <artifactid>druid</artifactid>
          <version>1.1.21</version>
      </dependency>
      <dependency>
          <groupid>org.junit.jupiter</groupid>
          <artifactid>junit-jupiter</artifactid>
          <version>release</version>
          <scope>compile</scope>
      </dependency>
      <dependency>
          <groupid>org.springframework</groupid>
          <artifactid>spring-context</artifactid>
          <version>6.1.2</version>
      </dependency>
      <dependency>
          <groupid>org.springframework</groupid>
          <artifactid>spring-test</artifactid>
          <version>5.3.12</version>
      </dependency>
      <dependency>
          <groupid>javax.servlet</groupid>
          <artifactid>javax.servlet-api</artifactid>
          <version>4.0.1</version>
      </dependency>
      <dependency>
          <groupid>javax.servlet.jsp</groupid>
          <artifactid>javax.servlet.jsp-api</artifactid>
          <version>2.3.3</version>
      </dependency>
      <dependency>
          <groupid>org.springframework</groupid>
          <artifactid>spring-web</artifactid>
          <version>6.1.2</version>
      </dependency>
      <dependency>
          <groupid>org.springframework</groupid>
          <artifactid>spring-webmvc</artifactid>
          <version>6.1.2</version>
      </dependency>
      <dependency>
          <groupid>log4j</groupid>
          <artifactid>log4j</artifactid>
          <version>1.2.17</version>
      </dependency>
      <dependency>
          <groupid>org.mybatis</groupid>
          <artifactid>mybatis</artifactid>
          <version>3.5.9</version>
      </dependency>
  </dependencies>
  <build>
    <finalname>ithiema_mybatis_quick</finalname>
  </build>
</project>

2.创建user链接

3.编写user实体类

package com.itheima.domain;
public class user {
    private int id;
    private string username;
    private string 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;
    }
    @override
    public string tostring() {
        return "user{" +
                "id=" + id +
                ", name='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

4.编写映射文件usermapper.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">
<!--为什么要给命名空间?当前这个usermapper。xml还会写很多sql语句,调用时候,使用命名空间点方法id-->
<mapper namespace="usermapper">
    <select id="findall" resulttype="com.itheima.domain.user">
        select * from user
    </select>
</mapper>

5.编写核心文件sqlmapconfig.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"></transactionmanager>
            <datasource type="pooled">
                <property name="driver" value="com.mysql.cj.jdbc.driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/dbstudy?servertimezone=asia/shanghai&usessl=false"/>
                <property name="username" value="root"/>
                <property name="password" value="admin"/>
            </datasource>
        </environment>
    </environments>
<!--    加载映射文件-->
    <mappers>
        <mapper resource="com.itheima.mapper/usermapper.xml"></mapper>
    </mappers>
</configuration>

6.编写测试类

import com.itheima.domain.user;
import org.apache.ibatis.session.sqlsession;
import org.apache.ibatis.session.sqlsessionfactory;
import org.apache.ibatis.session.sqlsessionfactorybuilder;
import org.junit.jupiter.api.test;
import org.apache.ibatis.io.resources;
import java.io.inputstream;
import java.util.list;
public class mybatistest {
    @test
    public void test1()throws exception{
//        获得核心配置文件
        inputstream resourceasstream = resources.getresourceasstream("sqlmapconfig.xml");
//2.获得sqlsession工厂对象
        sqlsessionfactory sqlsessionfactory = new sqlsessionfactorybuilder().build(resourceasstream);
//3.获得sqlsession回话对象
        sqlsession sqlsession = sqlsessionfactory.opensession();
//4.执行sql语句 参数:namespace+id
        list<user> userlist = sqlsession.selectlist("usermapper.findall");
//5.打印结果
        system.out.println(userlist);
//6.释放资源
        sqlsession.close();
    }
}

二、映射文件概述

三、增删改查操作

3.1 增加

<!--为什么要给命名空间?当前这个usermapper。xml还会写很多sql语句,调用时候,使用命名空间点方法id-->
<mapper namespace="usermapper">
    <insert id="save" parametertype="com.itheima.domain.user">
     insert into user values(#{id},#{username},#{password})
    </insert>
</mapper>
import com.itheima.domain.user;
import org.apache.ibatis.session.sqlsession;
import org.apache.ibatis.session.sqlsessionfactory;
import org.apache.ibatis.session.sqlsessionfactorybuilder;
import org.junit.jupiter.api.test;
import org.apache.ibatis.io.resources;
import java.io.inputstream;
import java.util.list;
public class mybatistest {
    @test
    public void test1()throws exception{
        user user = new user();
        user.setusername("tom");
        user.setpassword("123456");
        //        获得核心配置文件
        inputstream resourceasstream = resources.getresourceasstream("sqlmapconfig.xml");
//2.获得sqlsession工厂对象
        sqlsessionfactory sqlsessionfactory = new sqlsessionfactorybuilder().build(resourceasstream);
//3.获得sqlsession回话对象
        sqlsession sqlsession = sqlsessionfactory.opensession();
//4.执行sql语句 参数:namespace+id
        sqlsession.insert("usermapper.save",user);
//        mybatis的事务默认是不进行提交的
        sqlsession.commit();
//6.释放资源
        sqlsession.close();
}
}

3.2 修改

<!--为什么要给命名空间?当前这个usermapper。xml还会写很多sql语句,调用时候,使用命名空间点方法id-->
<mapper namespace="usermapper">
       <update id="update" parametertype="com.itheima.domain.user">
        update user set username=#{username},password=#{password} where id=#{id}
    </update>
</mapper>
import com.itheima.domain.user;
import org.apache.ibatis.session.sqlsession;
import org.apache.ibatis.session.sqlsessionfactory;
import org.apache.ibatis.session.sqlsessionfactorybuilder;
import org.junit.jupiter.api.test;
import org.apache.ibatis.io.resources;
import java.io.inputstream;
import java.util.list;
public class mybatistest {
    @test
    public void test1()throws exception{
//      修改
        user user = new user();
        user.setid(5);
        user.setusername("lucy");
        user.setpassword("123456");
        //获得核心配置文件
        inputstream resourceasstream = resources.getresourceasstream("sqlmapconfig.xml");
//2.获得sqlsession工厂对象
        sqlsessionfactory sqlsessionfactory = new sqlsessionfactorybuilder().build(resourceasstream);
//3.获得sqlsession回话对象
        sqlsession sqlsession = sqlsessionfactory.opensession();
//4.执行sql语句 参数:namespace+id
        sqlsession.update("usermapper.update",user);
//        mybatis的事务默认是不进行提交的
        sqlsession.commit();
//6.释放资源
        sqlsession.close();
    }
}

3.3删除

//      删除
        //获得核心配置文件
        inputstream resourceasstream = resources.getresourceasstream("sqlmapconfig.xml");
//2.获得sqlsession工厂对象
        sqlsessionfactory sqlsessionfactory = new sqlsessionfactorybuilder().build(resourceasstream);
//3.获得sqlsession回话对象
        sqlsession sqlsession = sqlsessionfactory.opensession();
//4.执行sql语句 参数:namespace+id
        sqlsession.delete("usermapper.delete",1);
//        mybatis的事务默认是不进行提交的
        sqlsession.commit();
//6.释放资源
        sqlsession.close();
<!--为什么要给命名空间?当前这个usermapper。xml还会写很多sql语句,调用时候,使用命名空间点方法id-->
<mapper namespace="usermapper">
    <delete id="delete" parametertype="java.lang.integer">
        delete from user where id=#{id}
    </delete>
</mapper>

3.4 小结

四、mybatis核心配置文件

objectfactory、databaseldprovider非重点  

4.1 数据源环境

4.1.1 environment

unpooled: 最原始的jdbc,需要时候创建用完销毁。

managed\jndi很少用到。

4.1.2 mapper

后三种作为了解

4.1.3 properties

4.1.4 typealiases

注意:标签放置有顺序要求

五、mybatis的相应api

到此这篇关于mybatis框架快速入门超详细教程的文章就介绍到这了,更多相关mybatis快速入门内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com