1. Mybatis简介

1.1什么是Mybatis

  • MyBatis 是一款优秀的持久层框架
  • 它支持定制化 SQL、存储过程以及高级映射。
  • MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
  • MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
  • MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
  • 2013年11月迁移到Github。

1.2 Mybatis获取方式

  • maven依赖
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version>
</dependency>
  • Github : https://github.com/mybatis/mybatis-3/releases
  • 中文文档:https://mybatis.org/mybatis-3/zh/index.html

1.3 为什么用Mybatis

  • 帮助程序猿将数据存入到数据库中。
  • 方便
  • 传统的JDBC代码太复杂了。简化。框架。自动化。
  • 不用Mybatis也可以。更容易上手。 技术没有高低之分
  • 优点:
    • 简单易学
    • 灵活
    • sql和代码的分离,提高了可维护性。
    • 提供映射标签,支持对象与数据库的orm字段关系映射
    • 提供对象关系映射标签,支持对象关系组建维护
    • 提供xml标签,支持编写动态sql。

总结一点: 好用!

2. Mybatis初步使用

2.1环境搭建

2.1.1 创建数据库和表

CREATE DATABASE `mybatis`;USE `mybatis`;CREATE TABLE `user`(`id` INT(20) NOT NULL PRIMARY KEY,`name` VARCHAR(30) DEFAULT NULL,`pwd` VARCHAR(30) DEFAULT NULL
)ENGINE=INNODB DEFAULT CHARSET=utf8;INSERT INTO `user`(`id`,`name`,`pwd`) VALUES
(1,'张三','123456'),
(2,'李四','123456'),
(3,'赵五','123456')

2.1.2 新建一个maven项目

导入依赖

<!--导入依赖--><dependencies><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><!--mybatis--><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><!--junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>

2.2 编写Mybatis核心配置文件

<?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核心配置文件-->
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments></configuration>

2.3 编写Mybatis工具类

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;//sqlSessionFactory --> sqlSession
public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory;static{try {//使用Mybatis第一步:获取sqlSessionFactory对象String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}//从SqlSessionFactory中获得 SqlSession 的实例// SqlSession 完全包含了面向数据库执行 SQL 命令所需的所有方法。public static SqlSession getSqlSession(){return sqlSessionFactory.openSession();}}

2.4创建实体类和Dao接口以及实现mapper

User实体类

public class User {private int id;private String name;private String pwd;public User() {}public User(int id, String name, String pwd) {this.id = id;this.name = name;this.pwd = pwd;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", pwd='" + pwd + '\'' +'}';}
}

Dao接口

public interface UserDao {List<User> getUserList();
}

mapper配置文件替代了原来的接口实现类UserDaoImpl,方便快捷

<?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=绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.zh.dao.UserDao"><!--select查询语句--><!--id:要实现的接口,resultType:返回结果类型--><select id="getUserList" resultType="com.zh.pojo.User">select * from mybatis.user</select></mapper>

2.5 测试

 @Testpublic void test(){//第一步,获取sqlSession对象SqlSession sqlSession = MybatisUtils.getSqlSession();//方式一,getmapper获取mapperUserDao userDao = sqlSession.getMapper(UserDao.class);//返回查询结果集List<User> userList = userDao.getUserList();for (User user : userList) {System.out.println(user);}sqlSession.close();}

报错:org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDao is not known to the MapperRegistry.
原因: 没有在核心配置文件中注册mappers

xml一定要放在resources文件夹中否则运行时target目录不会生成

如果不放在resources文件夹中,必须在pom.xml中添加

<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources>
</build>

上述问题解决后正确输出了select的查询结果。

(Mybatis)Mybatis简介和初步使用相关推荐

  1. Mybatis框架简介

    一.Mybatis框架简介 MyBatis框架是一个开源的数据持久层框架.它的内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询.存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工 ...

  2. 00 Mybatis之简介与入门

    文章目录 1 什么是MyBatis 2 分析原生态JDBC程序中存在的问题 3 MyBatis框架设计与核心对象 3.1 MyBatis框架图 3.2 MyBatis核心对象 4 MyBatis的执行 ...

  3. 【转】ibatis的简介与初步搭建应用

    [转]ibatis的简介与初步搭建应用 一.ibatis的简介 ibatis是什么东西就不介绍了,自己去找谷老师. 这里讲下自己的使用体会.之前自己学过Hibernate,是看尚学堂的视频教学的,看完 ...

  4. MyBatis—MyBatis概述

    文章目录 什么是mybatis MyBatis的生命周期? Dao接口的工作原理是什么? Dao 接口里的方法参数不同时能重载吗? mybatis分页方式 Mybatis 是否支持延迟加载?如果支持, ...

  5. SpringBoot整合mybatis+mybatis分页插件

    第一步:相关依赖 <!--web,servlet引入--> <dependency><groupId>org.springframework.boot</gr ...

  6. MyBatis Plus简介和入门案例

    简介 MyBatis-Plus(以下简称MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 润物无声 只做增强不做改变,引入它不会对现有 ...

  7. Mybatis - Mybatis简介到完善Idea配置Mybatis、以及idea连接Mysql数据库方法

    文章目录 MyBatis简介 什么是MyBatis? 持久层 表现层 业务层 持久层 框架 JDBC缺点 1.硬编码 2.操作繁琐 MyBatis简化 MyBatis快速入门 入门案例 创建表.插入数 ...

  8. 第一篇 mybatis的简介

    mybatis的目前最流行的ORM框架,几乎涵盖所有的互联网的领域,那么mybatis为什么会这么流行,相较JDBC和其他ORM框架又有什么样的特点和优势?我们会在接下来的学习中逐渐揭开? 一. JD ...

  9. Mybatis Plus简介_代码_以及文档地址_以及前置知识---Mybatis Plus工作笔记001

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152

最新文章

  1. 「GAN优化」如何学会以正确的姿势定量评价你的GAN
  2. CountDownLatch闭锁
  3. 大型网站架构之JAVA中间件
  4. flutter中本地存储shared_preferences的使用
  5. [转] iphoneX、iphoneXS、iphoneXSMax、iphoneXR适配
  6. Java堆空间– JRockit和IBM VM
  7. LeetCode 206. 反转链表 思考分析
  8. 素数路(prime)
  9. OpenCV学习笔记(五):线性滤波-方框、均值、高斯:boxFilter(),blur(),GaussianBlur()
  10. SQL Server添加Check约束
  11. 【think server rd340安装windows server 2008 R2 同时安装RAID驱动程序】
  12. EasyUI仓库管理系统
  13. VBS教程---第一篇
  14. matlab中.m文件访问simulink
  15. Google账号找回通用方法(尤其是知道账号密码仍无法登录和找回的)
  16. pytorch-psenet实现 并训练自己的数据集
  17. PostgreSQL 磁盘空间的保护伞 PG_repack VS 表膨胀
  18. 饭店点餐系统之数据库表结构
  19. 数据库指南-SQL与NoSQL
  20. [P4]p4 integrate/resolve/copy

热门文章

  1. c++新特性11 (11)unique_ptr
  2. 劳动力工资调整模型的探讨——数学建模
  3. 数据结构考完,想了很多。
  4. 【记忆化搜索】P1464 Function
  5. 西部数据 MyCloud 网络存储存在 RCE 漏洞
  6. 服务器指纹识别之 DNS TXT
  7. 010 自动技能的设计和实现
  8. MySQL创建用户(CREATE USER)
  9. Laravel 中 Controller访问Model函数/常量
  10. 1.2.2 认识各个硬件部件