欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > MyBatis框架学习

MyBatis框架学习

2024/10/25 2:29:41 来源:https://blog.csdn.net/howwickhappy/article/details/141546352  浏览:    关键词:MyBatis框架学习

系列文章目录

第一章 基础知识、数据类型学习
第二章 万年历项目
第三章 代码逻辑训练习题
第四章 方法、数组学习
第五章 图书管理系统项目
第六章 面向对象编程:封装、继承、多态学习
第七章 封装继承多态习题
第八章 常用类、包装类、异常处理机制学习
第九章 集合学习
第十章 IO流、多线程学习
第十一章 仓库管理系统项目
第十二章 员工管理系统、多表查询、反射实现DBHelper学习
第十三章 DML、DDL、数据库对象学习
第十四章 网络编程、各种标签、CSS学习
第十五章 ECMAScript、BOM学习
第十六章 DOM、jQuery学习
第十七章 Servlet、jsp、Cookie、Ajax学习
第十八章 融资管理系统项目
第十九章 MyBatis框架学习


文章目录

  • 系列文章目录
  • 前言
  • 一、框架简介
  • 二、MyBatis框架
    • 1. MyBatis基本信息
      • 1.1 ORM解释
      • 1.2 自动化与半自动化区别
    • 2. MyBatis与传统JDBC比较
    • 3. 操作步骤
      • 3.1 创建Java项目
      • 3.2 导入jar包,mysql连接,mybayis
      • 3.3 创建实体类Emp
      • 3.4 创建mybatis的核心配置文件SqlMapConfig.xml
      • 3.5 创建mybatis的SQL映射文件
      • 3.6 创建测试类
  • 三、应用工具
  • 总结


前言

本文会讲述:
框架简介
MyBatis框架的介绍与使用
在下攸攸太上,我是外星人。


一、框架简介

框架是一个半成品,使程序员不用考虑公共问题,框架会代替程序员做;程序员可以专心于业务的实现,保证核心业务逻辑的开发质量;结构统一,便于学习和维护;缩短开发的时间和周期。
框架是一个提供了可重用的公共结构的半成品,为构建程序提供了极大的遍历,提供了可重用的设计。
框架使混乱的东西变得结构化,保证了程序结构风格统一。
框架有很多约束,必须按照步骤按部就班的进行操作,但也包含了很多设计模式和基础功能。
一般小型项目中不适用框架,大型规模使用框架的效果极佳。

二、MyBatis框架

1. MyBatis基本信息

MyBatis是一个基于Java的数据持久层(ORM)框架。把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。取代了原本Dao的作用。

1.1 ORM解释

ORM 对象关系映射,是一种数据持久化技术
O:Object 对象:java里的实体类(对象)
R:Relation 关系:关系型数据库(表)
M:Mapping 映射:提供一种机制,实现映射

1.2 自动化与半自动化区别

半自动化:需要程序员编写sql语句,才能完成指定功能。
全自动化:无需程序员编写sql语句,直接操作实体类对象,就可以对应的操作数据库表里的数据。
有全自动为什么还需要半自动化?
多表查询的时候,分页查询的时候,全自动在进行修改的的时候反而很复杂

MyBatis 可以使用简单的XML或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

2. MyBatis与传统JDBC比较

MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
JDBC操作步骤:
1、定义数据库连接参数
2、打开数据库连接
3、声明SQL语句
4、预编译并执行SQL语句
5、遍历查询结果
6、处理事务
7、关闭数据库连接
MyBatis只需要定义数据库连接参数与声明SQL语句

3. 操作步骤

3.1 创建Java项目

3.2 导入jar包,mysql连接,mybayis

3.3 创建实体类Emp

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Emp {private Integer empno;private String ename;private String job;private Integer mgr;private Date hiredate;private Double sal;private Double comm;private Integer deptno;
}

3.4 创建mybatis的核心配置文件SqlMapConfig.xml

<?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><!--获取数据库连接四对象--><properties resource="jdbc.properties"></properties><!--类型别名,设置entry包下的所有类,都可以以首字母小写的别名来访问,减少代码冗余度--><typeAliases><package name="entry"/></typeAliases><!--配置MySql环境--><environments default="emploee"><environment id="emploee"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="${mysql.driver}"/><property name="url" value="${mysql.url}"/><property name="username" value="${mysql.username}"/><property name="password" value="${mysql.password}"/></dataSource></environment></environments><!--设置映射器--><mappers><package name="mapper"/></mappers>
</configuration>

3.5 创建mybatis的SQL映射文件

接口EmpMapper(相当于Dao)

import entry.Emp;
import java.util.ArrayList;
public interface EmpMapper {ArrayList<Emp> selectByEmp(Emp emp);ArrayList<Emp> selectByInfo(Emp emp);int insertEmp(Emp emp);int updateEmp(Emp emp);ArrayList<Emp> selectByList(ArrayList<Integer> list);
}

EmpMapper.xml(相当于DaoImpl)

<?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="mapper.EmpMapper"><select id="selectByEmp" parameterType="emp" resultType="emp">内部写Sql语句</select><select id="selectByInfo" parameterType="emp" resultType="emp"></select><insert id="insertEmp" parameterType="emp" useGeneratedKeys="true" keyProperty="empno"></insert><update id="updateEmp" parameterType="emp"></update><select id="selectByList" parameterType="java.util.ArrayList" resultType="emp">    </select>
</mapper>

在映射文件中,我们一般只使用insert、delete、update、select元素

3.6 创建测试类

public class TestEmp {public static void main(String[] args) throws IOException {InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();SqlSessionFactory factory = builder.build(is);SqlSession session = factory.openSession();EmpMapper mapper = session.getMapper(EmpMapper.class);System.out.println("新增:");Emp emp = new Emp();emp.setEname("权某");emp.setJob("活着");emp.setMgr(985);mapper.insertEmp(emp);session.commit();System.out.println("if查找");ArrayList<Emp> emps = mapper.selectByEmp(emp);for (Emp e : emps) {System.out.println(e);}System.out.println("修改");emp.setJob("因活着被捕");mapper.updateEmp(emp);session.commit();System.out.println("ifelse查找");emps = mapper.selectByInfo(emp);for (Emp e : emps) {System.out.println(e);}System.out.println("list查找");ArrayList<Integer> list = new ArrayList<>();list.add(10);list.add(30);emps = mapper.selectByList(list);for (Emp e : emps) {System.out.println(e);}}

三、应用工具

File>Setting>Pulgins中下载如下两个工具在这里插入图片描述
MyBatisX可以测试Mapper映射的对不对
Lombok可以以以下很少的代码代替全参构造、无参构造、getset方法以及同String方法
在这里插入图片描述


总结

今天讲解了MyBatis框架的理论及应用。
话说,在下如今身陷情关,你们地球人有没有什么外星人对地球人告白的好方法啊?

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com