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