maven项目创建MyBatis教程

286 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

先创建一个新的maven项目

在这里插入图片描述

然后把配置文件放pom.xml中在刷新导入

  <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>

        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.10</version>
        </dependency>
    </dependencies>

在这里插入图片描述

全选后创建好四个文件

在这里插入图片描述

创建mybatis-config配置文件

文件内容

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 加载log4j -->
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
    <!-- 配置匿名包 -->
    <typeAliases>
        <package name="com.item.model"></package>
    </typeAliases>
    <!-- 数据库配置 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://localhost:3306/cs?characterEncoding=utf-8"></property>
                <property name="username" value="root"></property>
                <property name="password" value="root"></property>
            </dataSource>
        </environment>
    </environments>
    <!-- 引入映射文件列表 -->
    <mappers>
        <mapper resource="mappers/UserMapper.xml"></mapper>
    </mappers>
</configuration>

创建测速数据库

/*
 Navicat MySQL Data Transfer

 Source Server         : 127.0.0.1
 Source Server Type    : MySQL
 Source Server Version : 80027
 Source Host           : localhost:3306
 Source Schema         : cs

 Target Server Type    : MySQL
 Target Server Version : 80027
 File Encoding         : 65001

 Date: 13/05/2022 20:13:24
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for sss
-- ----------------------------
DROP TABLE IF EXISTS `sss`;
CREATE TABLE `sss`  (
  `ids` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `orderdate` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `cost` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sss
-- ----------------------------
INSERT INTO `sss` VALUES ('1', 'jack', '2020-01-12', '30');
INSERT INTO `sss` VALUES ('2', 'rose', '2020-01-12', '40');
INSERT INTO `sss` VALUES ('3', 'tom', '2020-01-12', '50');
INSERT INTO `sss` VALUES ('4', 'tom', '2020-01-22', '60');
INSERT INTO `sss` VALUES ('5', 'jack', '2020-02-12', '70');
INSERT INTO `sss` VALUES ('6', 'jack', '2020-01-10', '70');

SET FOREIGN_KEY_CHECKS = 1;

创建实体类

package com.mybatis.pojo;

public class User {
    private String ids;
    private String name;
    private String orderdate;
    private String cost;

    @Override
    public String toString() {
        return "User{" +
                "ids='" + ids + '\'' +
                ", name='" + name + '\'' +
                ", orderdate='" + orderdate + '\'' +
                ", cost='" + cost + '\'' +
                '}';
    }

    public String getIds() {
        return ids;
    }

    public void setIds(String ids) {
        this.ids = ids;
    }

    public String getName() {
        return name;
    }

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

    public String getOrderdate() {
        return orderdate;
    }

    public void setOrderdate(String orderdate) {
        this.orderdate = orderdate;
    }

    public String getCost() {
        return cost;
    }

    public void setCost(String cost) {
        this.cost = cost;
    }
}

创建mapper接口

在这里插入图片描述


public interface UserMapper {
    List<Users> GetInfo();
}

创建MyBatis映射文件

创建mappers文件夹专门用来存放配置文件

在这里插入图片描述

名字和map接口名字保持一致写入映射文件


<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.mybatis.pojo.mapper.UserMapper">
    <insert id="insertUser">
        insert into sss values(null,'admin','2020-01-12','200')
    </insert>
</mapper>

namespace的值跟mapper接口的路径一致

在这里插入图片描述

id 是sql语句的唯一标识 映射文件中Sql语句的id要和mapper接口中的方法名保持一致 当他调用接口的时候就可以通过map接口中的全类名找到映射文件 然后在通过匹配的方法名找到匹配的ID sql语句

引入配置文件

修改映射文件为mappers中的路径

在这里插入图片描述

测试功能

在这里插入图片描述

package com.mybatis.pojo.Action;

import com.mybatis.pojo.mapper.UserMapper;
import com.mybatis.pojo.model.User;
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 javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;

public class MyBatis {
    public static void main(String[] args) throws IOException {
        //加载核心配置文件
        //通过字节输入流来获取
        InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlsessionfactory = sqlSessionFactoryBuilder.build(resourceAsStream);
        //获取操作数据库的会话对象,代码java和数据库之间的会话
        SqlSession sqlSession = sqlsessionfactory.openSession();
        //获取mapper接口对象
        //返回一个接口对应的实现类的对象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    
        //测试功能
        int result = mapper.insertUser();
        System.out.println(result);
            //提交事务
        sqlSession.commit();
        sqlSession.close();


    }
}

在这里插入图片描述