Mybatis框架详解+示例

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: Mybatis框架详解+示例

@[TOC]

一、Mybatis简介

1.Mybatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。

2.Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。

3.Mybatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJO映射成数据库中的记录。

4.特点:小巧简单易学,没有任何第三方依赖。MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加

任何影响。SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,更易单元测试,并可重用。

5.不足:SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求,SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

二、Mybatis体系结构

在这里插入图片描述

三、Mybatis编程方法1:基于XML的实现

在这里插入图片描述

步骤1、创建好MySQL数据库

create database testdb; 
use testdb; 
create table users(
id int auto_increment not null,
username varchar(20) not null,
password varchar(20),
primary key(id)
);

步骤2、在pom.xml中添加mysql-connector-java和Mybatis依赖

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency> 
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>

步骤3、创建实体类User(pojo)

在src/main/java下新建entity包,并创建User类:

package entity;
public class User {
int id;
String username;
String password; 
//getter和setter省略
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
}

步骤4、添加Mybatis全局配置文件

在src/main/resources下新建mybatis包,并新建mybatis-config.xml:

<?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">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC" />
<property name="username" value="root" />
<property name="password" value="zz@mysql" />
</dataSource>
</environment>
</environments> 
<mappers> 
<mapper resource="mapper/userMapper.xml"/>
</mappers> 
</configuration>

步骤5、创建sql映射文件userMapper.xml

在src/main/resources下新建mapper包,创建userMapper.xml :

<?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">
<mapper namespace="mapper.userMapper"> 
<select id="getUserById" resultType="entity.User" parameterType="int">
select * from users where id= #{id}
</select>
</mapper>

步骤6、主程序测试

public class Test {
        public static void main(String[] args) throws IOException {
            String resource = "mybatis/mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            String statement = "mapper.userMapper.getUserById"; // namespace+id找到映射sql串
            User user = sqlSession.selectOne(statement, 1);
            sqlSession.close();
            System.out.println(user);
        }
    }

三、Mybatis编程方法2:基于注解的实现

步骤1、定义sql映射接口(在src/main/java下创建mapper包)

package mapper;
public interface IUserMapper {
@Insert("insert into users(username,password) values(#{username},#{password})")
public int addUser(User user);
@Delete("delete from users where id=#{id}")
public int deleteUser(int id);
@Update("update users set username=#{username},password=#{password} where id=#{id}")
public int updateUser(User user);
@Select("select * from users where id=#{id}")
public User getUserById(int id);
@Select("select * from users")
public List<User> getAllUsers();
}

步骤2、将sql映射接口添加到Mybatis配置文件

<mappers>
<mapper class="mapper.IUserMapper"/>
</mappers>

步骤3、CRUD代码

static SqlSession sqlSession; // 定义类成员变量
    static IUserMapper mapper; // 定义类成员变量
    public static SqlSession getSqlSession() throws IOException {
        String resource = "mybatis/mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        return sqlSessionFactory.openSession();
    }
    public static List<User> getAllUsers() throws IOException {
        sqlSession = getSqlSession();
        mapper = sqlSession.getMapper(IUserMapper.class);
        List<User> list = mapper.getAllUsers();
        sqlSession.close();
        return list;
    }
    public static void main(String[] args) throws IOException {
        List<User> users = getAllUsers();
        for (User user : users) {
            System.out.println(user);
        }
    }

五、资源下载与学习

CSDN下载:Mybatis编程示例:基于XML的实现

CSDN下载:Mybatis编程示例:基于注解的实现

联系作者

如需要本资源下载也可以直接添加作者QQ,并可以获取资源预览、软件安装、工程导入、协助运行、算法解释、报告协助撰写等售后服务

欢迎交流

QQ:402501817(心源易码 佩奇)

QQ:2215991436(心源易码 派大星)


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
SQL Java 数据库连接
MyBatis 框架入门理论与实践
MyBatis 框架入门理论与实践
30 6
|
SQL Java 数据库连接
MyBatis 优秀的持久层框架(一)
MyBatis 优秀的持久层框架
76 0
|
2月前
|
SQL 关系型数据库 Java
Mybatis-Flex框架初体验
Mybatis-Flex框架初体验
|
18天前
|
SQL Java 数据库连接
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
|
29天前
|
SQL Java 数据库连接
什么是MyBatis持久层框架?
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象) 映射成数据库中的记录。
39 5
|
1月前
|
开发框架 Java 测试技术
XwFast,我开发了一个基于SpringBoot和MyBatisPlus的敏捷开发框架!
XwFast,我开发了一个基于SpringBoot和MyBatisPlus的敏捷开发框架!
33 1
|
2月前
|
SQL XML Java
这样使用MyBatis框架,被攻击了
这样使用MyBatis框架,被攻击了
15 0
|
2月前
|
Java fastjson Apache
Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
37 1
|
2月前
|
前端开发 Java 数据库连接
探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty
探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty
|
2月前
|
XML Java 数据库连接
【MyBatis】 框架原理
【MyBatis】 框架原理
20 0