Mybatis入门必备

Mybatis入门必备

一、Mybatis简介

MyBatis 源于 Apache 的一个开源项目 iBatis,而 iBatis 一词则来源于“internet”和“abatis”的组合,2010年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为MyBatis ,2013年11月其又迁移到 Github。MyBatis 是一个基于 Java 的支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架,相比于基于面向对象使用 HQL 语言的 Hibernate 框架,MyBatis 则基于 SQL 面向结果集,因此其效率更高。

官方文档:https://mybatis.org/mybatis-3/zh/index.html

Mybatis就是对于JDBC的封装!!!

二、开发步骤(仅以select * 为例)

1、导包:https://mvnrepository.com/artifact/org.mybatis/mybatis

以3.5.4版本为例,

mybatis-3.5.4.jar

mysql-connector-java-8.0.19.jar

2.编写实体类:

a、mybatis在操作数据库时,表的字段名最好与pojo类的属性名保持一致,因为mybatis默认采用的是自动映射,通过过去字段的名字得到对应的值,然后再通过反射到类里面寻找名字相同的属性名,调用对应的setter方法将数据赋值给属性

b、如果字段名与属性名不一致可以通过sql语句给查询的字段取别名,但是别名必须与对应的属性名一致

public class User {

private int id; //id

private String account; //账号

private String password; //密码

}

3.创建mybatis-config.xml配置文件

注意:该xml文件应该放在src文件下

该配置文件用于存放数据库连接相关数据

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

value="jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC" />

<!--esource="存放sql语句的xml详细地址"-->

4.创建UsersMapper.xml文件

注意:新建mapper包,并将UsersMapper.xml放在mapper文件下

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

5.创建测试类

public class MybatisTest {

public static void main(String[] args) throws IOException {

//自动到src下找配置文件

InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");

//创建工厂

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);

//创建session:底层就是利用statement对象来操作数据库

SqlSession session =factory.openSession();

//直接利用session来执行sql进行查询

List selectList = session.selectList("abc.findall");

//遍历

selectList.forEach(e->System.out.println(e.toString()));

//关闭statement connection

session.close();

}

}

mybatis执行逻辑

a:首先通过输入流读取mybatis.xml与mapper.xml文件中的配置信息

b:创建session,一个session就是一次会话

c:通过selectList方法中的参数找到对应的sql语句,同时创建一个statement去查询数据库

d:查询时会得到一个ResultSet,mybatis框架根据反射自动的将得到的数据封装成pojo类对象

e:如果是selectList方法,则会自动将这些对象封装成List对象并返回

6.执行结果:

相关推荐