> 文档中心 > MyBatis入门到精通——Mybatis入门篇

MyBatis入门到精通——Mybatis入门篇

目录

一、什么是 MyBatis?

二、入门案例

(1)创建maven项目

(2)引入依赖包

(3)创建数据库执行sql脚本

三、入门程序源码

(1)User.java

(2)UserMapper.java

(3)MybatisUtils.java

(4)UserMapperTest.java

(6)UserMapper.xml

(7)mybatis-config.xml

(8)pom.xml 

四、程序单元测试结果

五、程序完整源码获取


一、什么是 MyBatis?

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

Mybatis官网文档:https://mybatis.org/mybatis-3/zh/getting-started.html

二、入门案例

(1)创建maven项目

在此之前,需要提前配置好java环境变量和maven环境变量。

 

 

 

(2)引入依赖包

在https://mvnrepository.com/ 搜索添加到pom.xml中

注意:如果使用到lombok需要用IDEA转上lombok插件。

       org.mybatis     mybatis     3.5.9        mysql     mysql-connector-java     8.0.28       org.projectlombok     lombok     1.18.22       junit     junit     4.12 

(3)创建数据库执行sql脚本

/* Navicat Premium Data Transfer Source Server  : 本地数据库 Source Server Type    : MySQL Source Server Version : 50733 Source Host    : localhost:3306 Source Schema  : mybatis-simple Target Server Type    : MySQL Target Server Version : 50733 File Encoding  : 65001 Date: 16/04/2022 23:11:46*/SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for t_user-- ----------------------------DROP TABLE IF EXISTS `t_user`;CREATE TABLE `t_user`  (  `id` int(11) NOT NULL AUTO_INCREMENT,  `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,  PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;-- ------------------------------ Records of t_user-- ----------------------------INSERT INTO `t_user` VALUES (1, 'admin1', '123456');INSERT INTO `t_user` VALUES (2, 'admin2', '123456');SET FOREIGN_KEY_CHECKS = 1;

三、入门程序源码

项目目录结构

(1)User.java

package com.mybatis.entity;import lombok.Data;import java.io.Serializable;@Datapublic class User implements Serializable {    private Integer id;    private String username;    private String password;}

(2)UserMapper.java

package com.mybatis.mapper;import com.mybatis.entity.User;import java.util.List;public interface UserMapper {    public List selectUserList();}

(3)MybatisUtils.java

package com.mybatis.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 MybatisUtils {    private static SqlSessionFactory sqlSessionFactory;    static { try {     // 获取sqlSessionFactory对象     String resource = "mybatis-config.xml";     InputStream inputStream = Resources.getResourceAsStream(resource);     sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) {     e.printStackTrace(); }    }    public static SqlSession getSqlSession() { SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession;    }}

(4)UserMapperTest.java

package com.mybatis;import com.mybatis.entity.User;import com.mybatis.mapper.UserMapper;import com.mybatis.util.MybatisUtils;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import java.util.List;public class UserMapperTest {    @Test    public void test() { // 第一步: 获得sqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); // 执行 这个过程就相当于创建一个interface的对象 UserMapper mapper = sqlSession.getMapper(UserMapper.class); List userList = mapper.selectUserList(); userList.forEach(System.out::println); sqlSession.close();    }}

(6)UserMapper.xml

         select * from t_user    

(7)mybatis-config.xml

                                          

(8)pom.xml 

    4.0.0    com.mybatis    mybatis-simple    1.0-SNAPSHOT           org.mybatis     mybatis     3.5.9        mysql     mysql-connector-java     8.0.28       org.projectlombok     lombok     1.18.22       junit     junit     4.12          8 8    

四、程序单元测试结果

运行UserMapperTest类,输出以下结果,就说明运行成功了。

五、程序完整源码获取

https://download.csdn.net/download/qq_19309473/85157975