mybatis快速搭建

一、简介

它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低。

二、数据库搭建

比如我当前只有id,username,userpwd三个字段

create database mybatis;
use mybatis;
create table user(
	id int NOT NULL primary key AUTO_INCREMENT ,
    username varchar(20) not null,
    userpwd varchar(20) not null
);
insert into user (username,userpwd) values ('user1','admin');
insert into user (username,userpwd) values ('user2','admin');

三、框架搭建

这里以idea为开发平台搭建

1、创建项目

首先我们创建一个新的项目,点击new project

image-20220303114245199

选择Spring,输入项目名称、sdk与java版本(相同)、然后next

image-20220303114325630

选择最基本的mysqlDriver驱动(其他的可以更具自己的需求添加,我这里只需要最基本的mysql驱动)。

完成后finish即可完成项目的基本新建。

image-20220303114549141

2、导入依赖

既然要用mybatis,自然就要mybatis的依赖。在https://mvnrepository.com/中搜索

输入框输入mybatis,点击搜索

image-20220303115159031

第一个就是

image-20220303115208570

这里选择当前最新的

image-20220303115222174

点击复制下面xml代码即可。

image-20220303115234147

这时我们回到idea中。在项目结构中找到pom.xml文件

在text下面粘贴刚才复制的代码,然后再点一下右边的m按钮(此按钮是下载依赖)

image-20220303124427485

image-20220303124501239

3、在idea中配置数据库

根据第一步mysql配置信息中配置

image-20220303130819673

选择mysql

image-20220303130839694

这里注意Driver这里,如果MySQL版本是8.0一下(包括8.0)选择MySQL。如果是8.0以上(不包括8.0)选择MySQL for 5.1。然后依次输入host、user、password、Database,再然后点击Test Connection测试,通过后点击ok即可。

image-20220303131056532

4、编写mybatis配置文件(mybatis-config.xml)

从现在开始按照https://mybatis.net.cn/getting-started.html官方的讲解来操作。

在resources中创建一个mybatis-config.xml文件

image-20220303131652750

输入mybatis-config.xml

image-20220303131711357

更具官方文档配置

image-20220303131759264

<?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">
<!--                mysql驱动-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!--                mysql地址 (注意&amp;转义)-->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=utf-8"/>
<!--                mysql账号-->
                <property name="username" value="root"/>
<!--                mysql密码-->
                <property name="password" value="admin"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--        不慌等一下要修改-->
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>

5、创建基本的文件夹结构

在mybatis文件夹下创建基本的mybatis结构结构。

有dao、pojo、Utils

image-20220303132550485

6、创建mybatisUtils核心配置

在Utils文件夹下创建mybatisUtils.java并编写代码

image-20220303132740684

package com.example.mybatis.Utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class mybatisUtils {
    public static SqlSessionFactory sqlSessionFactory;

    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream;
            inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

7、创建user实体类

在idea开发工具中在右上角找到竖着写的Database,选择mybatis下的user,右键找到倒数第二个Scripted Extensions下的POJOs,点击它

image-20220303134039277

找到当前目录的pojo文件夹,然后点击ok

image-20220303134404019

这时,在我的pojo目录下就多了个User.java的文件

image-20220303134445344

这时我们将多余的代码删除掉

原来的

package com.sample;


public class User {

  private long id;
  private String username;
  private String userpwd;


  public long getId() {
    return id;
  }

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


  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }


  public String getUserpwd() {
    return userpwd;
  }

  public void setUserpwd(String userpwd) {
    this.userpwd = userpwd;
  }

}

删除后的

package com.example.mybatis.pojo;

public class User {

  private long id;
  private String username;
  private String userpwd;

}

现在我们批量导入无参构造、get、set、tostring四个方法(IDEA快捷键Alt+ins)

无参

image-20220303134806168

image-20220303134819287

get 和 set

image-20220303134847385

image-20220303134906144

tostring

image-20220303134929171

image-20220303134942364

这样实体类就创建完成了。

package com.example.mybatis.pojo;

public class User {

  private long id;
  private String username;
  private String userpwd;

  public User() {
  }

  public long getId() {
    return id;
  }

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

  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }

  public String getUserpwd() {
    return userpwd;
  }

  public void setUserpwd(String userpwd) {
    this.userpwd = userpwd;
  }

  @Override
  public String toString() {
    return "User{" +
            "id=" + id +
            ", username='" + username + '\'' +
            ", userpwd='" + userpwd + '\'' +
            '}';
  }
}

8、创建userdao.java

在dao目录下创建userdao.java(注意这里选择interface接口)

image-20220303140347921

image-20220303140448802

编写代码

package com.example.mybatis.dao;

import com.example.mybatis.pojo.User;

import java.util.List;

public interface userdao {
    //    遍历所有用户
    List<User> userList();
}

9、创建userdao.xml

在dao目录下创建userdao.xml文件

image-20220303175639017

image-20220303175747483

编写代码

<?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(命名空间)为userdao.java的路径-->
<mapper namespace="com.example.mybatis.dao.userdao">
<!--    id为userdai.java的方法名,resultType为pojo中user的实体类-->
    <select id="userList" resultType="com.example.mybatis.pojo.User">
--         sql语句
        select * from user;
    </select>
</mapper>

10、修改刚刚配置的mybatis-config.xml配置文件

打开刚才编写的mybatis-config.xml文件

image-20220303180228734

修改刚才注名的mapper,将resource修改为刚才设置userdao.xml的路径

image-20220303180427807

<?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">
<!--                mysql驱动-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!--                mysql地址 (注意&amp;转义)-->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&amp;useUnicode=true&amp;characterEncoding=utf-8"/>
<!--                mysql账号-->
                <property name="username" value="root"/>
<!--                mysql密码-->
                <property name="password" value="admin"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--        usedao.xml的路径-->
        <mapper resource="com/example/mybatis/dao/userdao.xml"/>
    </mappers>
</configuration>

11、解决maven静态资源过滤的问题

找到pom.xml文件,在build中添加一段代码

image-20220303180741712

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

全部

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mybatis</name>
    <description>mybatis</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.9</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>

12、编写测试类

在src/test/java/com/example/mybatis中找到MybatisApplicationTests.java文件并编写代码

image-20220303180856865

package com.example.mybatis;

import com.example.mybatis.Utils.mybatisUtils;
import com.example.mybatis.dao.userdao;
import com.example.mybatis.pojo.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class MybatisApplicationTests {

    @Test
    void contextLoads() {
        SqlSessionFactory sqlSessionFactory = mybatisUtils.sqlSessionFactory;
        SqlSession sqlSession = sqlSessionFactory.openSession();
        userdao mapper = sqlSession.getMapper(userdao.class);
        for (User user : mapper.userList()) {
            System.out.println(user);
        }
        sqlSession.close();
    }
}

13、运行测试代码

在刚才编写的测试类的右边应该有一个开始播放的按钮,点击它即可运行。

image-20220303181353316

最后执行结果

image-20220303181413713

以上是最基本的mybatis的使用方法,其他sql语句使用原理大致相同。实际使用可以考虑加入druid连接池混合使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盒子里的加菲猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值