> 文章列表 > MyBatis快速入门

MyBatis快速入门

MyBatis快速入门

在这里插入图片描述

文章目录

  • 一、MyBatis是什么?
  • 二、MyBatis快速入门

一、MyBatis是什么?

MyBatis是一款优秀的持久层框架,用于简化JDBC开发,MyBatis原本是Apache的一个开源项目iBatis,2010年由apache software foundation迁移到了google code,改名为MyBatis,2013年迁移到Github

什么是持久层?
负责将数据保存到数据库的那一层代码
JavaEE三层架构:表现层、业务层、持久层

框架是什么?
框架就是一个半成品软件,是一套可重用的,通用的,软件基础代码模型
在框架的基础之上构建软件编写更加高效,规范,通用,可扩展

JDBC的缺点:
1.硬编码(注册驱动,获取连接,SQL语句)
2.操作繁琐(手动设置参数,手动封装结果集)

MyBatis的简化:
1.硬编码(通过配置文件解决)
2.操作繁琐(自动完成)
3.MyBatis免除了几乎所有的JDBC代码,以及设置参数和获取结果集的工作
MyBatis快速入门

二、MyBatis快速入门

我们现在完成这样一个需求,查询student表中所有数据
1.创建student表,添加数据

 create database mybatis;use mybatis;create table student (id int primary key auto_increment,name varchar(20),gender char(1));insert into student values(null,"zhangsan",'男'),(null,"wangwu",'女'),(null,"lisi",'男');

2.创建模块,导入坐标
MyBatis快速入门
那我们需要在pom.xml中引入那些依赖呢? 教大家一招去官网查
MyBatis快速入门
然后我们将其复制到pom.xml中,版本选3.5.5

    <dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency></dependencies>

导完mybatis之后,我们需要操作数据库,那么就需要导入mysql驱动

        <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency>

3.编写MyBatis核心配置文件
这一步骤替换链接信息,解决硬编码问题
MyBatis快速入门
在resources目录下创建mybatis-config.xml配置文件
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><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://127.0.0.1:3306/mybatis?useSSL=false"/><property name="username" value="root"/><property name="password" value=""/></dataSource></environment></environments><mappers><!-- 加载sql映射文件 --><mapper resource="org/mybatis/example/BlogMapper.xml"/></mappers>
</configuration>

4.创建SQL映射文件
MyBatis快速入门
MyBatis快速入门
5.编码
创建POJO类
MyBatis快速入门
创建完POJO类,我们再来写一下映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="test"><select id="selectAll" resultType="zd.Student">select * from student</select>
</mapper>

MyBatis快速入门
将我们写好的映射文件加载到mybatis配置文件中
MyBatis快速入门
完善实体类,根据我们数据库表中的信息

public class Student {private Integer id;private String name;private String gender;public Student() {}public Student(Integer id, String name, String gender) {this.id = id;this.name = name;this.gender = gender;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}@Overridepublic String toString() {return "Student{" +"id=" + id +", name='" + name + '\\'' +", gender='" + gender + '\\'' +'}';}
}

加载配置文件,获取SqlSessionFactory对象
MyBatis快速入门
MyBatis快速入门

    public static void main(String[] args) throws IOException {//1.加载mybatis配置文件,获取SqlSessionFactoryString resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//2.获取SqlSession对象,执行sqlSqlSession session = sqlSessionFactory.openSession();//3.执行sql,传入namespace.select.idList<Student> students = session.selectList("test.selectAll");System.out.println(students);//4.释放资源session.close();}

MyBatis快速入门