目录

一、什么是 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插件。

        <!--mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>

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

/*Navicat Premium Data TransferSource Server         : 本地数据库Source Server Type    : MySQLSource Server Version : 50733Source Host           : localhost:3306Source Schema         : mybatis-simpleTarget Server Type    : MySQLTarget Server Version : 50733File Encoding         : 65001Date: 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;@Data
public 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<User> 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 {@Testpublic void test() {// 第一步: 获得sqlSession对象SqlSession sqlSession = MybatisUtils.getSqlSession();// 执行 这个过程就相当于创建一个interface的对象UserMapper mapper = sqlSession.getMapper(UserMapper.class);List<User> userList = mapper.selectUserList();userList.forEach(System.out::println);sqlSession.close();}
}

(6)UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--namespace=绑定一个对应的Mapper接口-->
<mapper namespace="com.mybatis.mapper.UserMapper"><!--查询用户列表--><select id="selectUserList" resultType="com.mybatis.entity.User">select * from t_user</select>
</mapper>

(7)mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//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.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis-simple"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><mappers><package name="com.mybatis.mapper"/></mappers>
</configuration>

(8)pom.xml

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.mybatis</groupId><artifactId>mybatis-simple</artifactId><version>1.0-SNAPSHOT</version><dependencies><!--mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties></project>

四、程序单元测试结果

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

五、程序完整源码获取

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

MyBatis入门到精通——Mybatis入门篇相关推荐

  1. Redis从入门到精通:初级篇(转)

    原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...

  2. 视频教程-SQL语句从入门到精通迅速提升篇视频课程(Oracle零基础版)-Oracle

    SQL语句从入门到精通迅速提升篇视频课程(Oracle零基础版) 某公司区域交付运营总监,丰富的项目管理经验,带过1个亿级项目,千万级项目10余个. 陈志文 ¥118.00 立即订阅 扫码下载「CSD ...

  3. MySQL零基础从入门到精通(函数篇)

    MySQL零基础从入门到精通(函数篇) 在MySQL中,为了提高代码重用性和隐藏实现细节,MySQL提供了很多函数.函数可以理解为别人封装好的模板代码. 分类 聚合函数 数学函数 字符串函数 日期函数 ...

  4. 视频教程-2019版抓包分析-Wireshark从入门到精通【进阶篇】-其他

    2019版抓包分析-Wireshark从入门到精通[进阶篇] G-LAB IT实验室创始人.知名讲师.同时拿到路由交换.网络安全.数据中心3个方向的CCIE专家级别认证.教学风趣幽默,广受学员好评 郭 ...

  5. 视频教程-30小时微信小程序从入门到精通课程-基础篇-微信开发

    30小时微信小程序从入门到精通课程-基础篇 8年IT开发经验,6年IT教育经验,喜欢把复杂逻辑用简单的表述传达给学生,传授编程知识,讲述生活故事 曹圣捷 ¥12.00 立即订阅 扫码下载「CSDN程序 ...

  6. Mybatis从入门到精通二(入门详解)

    Mybatis从入门到精通二(想学Mybatis,看了这一篇你就不需要其他的了) 本课程分为两天第一天的请参考: https://blog.csdn.net/weixin_43564627/artic ...

  7. android bsp入门到精通,网管教程:从入门到精通(软件篇).pdf

    网管教程:从入门到精通(软件篇) Ver 1.1 Feihon (609095519 )整理 2010-4-26 (资料来自 IT 网绚技术赸级群癿分享,本人仅提供整理,原作者未知 ) 网管教程:从入 ...

  8. seo从入门到精通_SEO入门到精通(七):SEO工作的流程是什么?

    刚入门seo会对这个行业的工作流程产生疑问,或者因为自己学习的seo知识比较零散,无法去把控seo工作的整体流程,本文会给大家讲解下企业站通用的seo优化流程: 行业概况分析→企业实况分析→竞品分析→ ...

  9. python3入门到精通pdf-Python3入门到精通实战特训

    原标题:Python3入门到精通实战特训 随着时间的推移,python2.7版本很快就要停止官方更新了.如果你还没来及正式考虑版本迁移问题,或者你是一个python新手.那么就很有必要一试本课程,一方 ...

最新文章

  1. Magic Leap 2实测出炉:视场角增大20度,重量减轻20%,透光率低至0.3%让AR特效更逼真...
  2. 通配符及输入输出重定向、管道符和作业控制
  3. [更正]谈获取当前系统类型(SP OR PPC)
  4. ubuntu下配置php环境
  5. java深拷贝和浅拷贝
  6. 扫描微信二维码实现快速登录
  7. 请教问题:ckeditor脚本错误“Error:例外被抛出且未被接住”[已解决]
  8. Android 反编译之smail
  9. 中地恒达ZDHD-DCX-2B型导轮式固定测斜仪的参数原理
  10. TIFF图像文件格式详解(3)
  11. U盘文件莫名丢失?这样做可轻松找回!
  12. Jupyter云服务器搭建指南
  13. 实体零售纷纷转型,苏宁、乐语到底能给我们带来哪些启示?
  14. ES索引创建、新增与修改字段
  15. Discuz论坛web网页mp3音频播放器源码下载
  16. 【数据安全案例】北京购车摇号查询系统出现信息泄露漏洞
  17. 北交所开通知识测评 测试题答案(海通)
  18. ArcGIS合并shp文件及单个shp文件中的相邻斑块
  19. 闪兼云带你游历互联网网赚的不同时代
  20. mysql备份文件解析_使用Golang解析读取Mysql备份文件

热门文章

  1. Pyspark 最近使用的一些有趣姿势的梳理
  2. LinkedList和ArrayList异同
  3. jhipster详解
  4. 软件变更控制 - 控制成本溢出
  5. Jzoj3898 树的连通性
  6. RESTFUL协议入门介绍
  7. getComputedStyle与currentStyle获取样式(style/class)
  8. 防盗链与token运用
  9. 序《戎马书生马福祥》
  10. UIDatePicker的属性与方法