1. 物理建模
  2. 逻辑建模
  3. 搭建框架开发环境
  4. 对于程序运行的认识

物理建模

创建数据库表插入数据

逻辑建模

①创建Maven module

②创建java的实体类
实体类是和现实世界中某一个具体或抽象的概念对应,是软件开发过程中,为了管理现实世界中的数据而设计的模型。
实体类的多个不同的叫法:

  • domain:领域模型
  • entity:实体
  • POJO:Plain Old Java Object
  • Java bean:一个Java类

Java的实体类中,属性的类型不要使用基本数据类型,要使用包装类型。因为包装类型可以赋值为null,表示空,而基本数据类型不可以。每个数据库中每个列名对应实体类的属性

public class Employee {private Integer empId;private String empName;private Double empSalary;//getter、setter、构造器、toString方法略
}

搭建框架开发环境

①导入依赖
在module中的pom.xml中导入以下依赖

<dependencies><!-- Mybatis核心 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><!-- junit测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- MySQL驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.3</version></dependency>
</dependencies>

注意:IDEA没有自动导入成功时需要手动reload

②准备配置文件

配置文件创建位置

(1)创建数据库连接配置文件jdbc.properties

zeng.driver=com.mysql.jdbc.Driver
zeng.url=jdbc:mysql://localhost:3306/mybatis-example
zeng.username=root
zeng.password=mysql

说明:
在实际开发时,同一套代码往往会对应多个不同的具体服务器环境。使用的数据库连接参数也不同。为了更好的维护这些信息,我们建议把数据库连接信息提取到Mybatis全局配置文件外边。

(2)Mybatis全局配置文件

习惯上命名为mybatis-config.xml,将来整合Spring之后,这个配置文件可以省略。

<?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"/><!-- environments表示配置Mybatis的开发环境,可以配置多个环境,在众多具体环境中,使用default属性指定实际运行时使用的环境。default属性的取值是environment标签的id属性的值。 --><environments default="development"><!-- environment表示配置Mybatis的一个具体的环境 --><environment id="development"><!-- Mybatis的内置的事务管理器 --><transactionManager type="JDBC"/><!-- 配置数据源 --><dataSource type="POOLED"><!-- 建立数据库连接的具体信息 --><property name="driver" value="${zeng.driver}"/><property name="url" value="${zeng.url}"/><property name="username" value="${zeng.username}"/><property name="password" value="${zeng.password}"/></dataSource></environment></environments><mappers><!-- Mapper注册:指定Mybatis映射文件的具体位置 --><!-- mapper标签:配置一个具体的Mapper映射文件 --><!-- resource属性:指定Mapper映射文件的实际存储位置,这里需要使用一个以类路径根目录为基准的相对路径 --><!--    对Maven工程的目录结构来说,resources目录下的内容会直接放入类路径,所以这里我们可以以resources目录为基准 --><mapper resource="mappers/EmployeeMapper.xml"/></mappers>
</configuration>

(3) Mybatis映射文件

这里需要说明一个概念:
ORM(Object Relationship Mapping)对象关系映射。

  • 对象:Java的实体类对象
  • 关系:关系型数据库
  • 映射:二者之间的对应关系

    将EmployeeMapper.xml文件存放到mappers文件夹下
<?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属性:在Mybatis全局范围内找到一个具体的Mapper配置 -->
<!--java程序就是通过Mapper标签的namespace属性找到当前Mapper配置文件-->
<!-- 引入接口后,为了方便通过接口全类名来找到Mapper配置文件,所以通常将namespace属性设置为接口全类名 -->
<!--以前我们叫dao,现在我们叫Mapper,本质都是持久化层的类型,知识只是习惯的区别-->
<mapper namespace="com.zengchuiyu.mybatis.dao.EmployeeMapper"><!-- resultType属性:指定封装查询结果的Java实体类的全类名 --><!-- select语句使用select标签 --><!-- insert语句使用insert标签 --><!-- update语句使用update标签 --><!-- delete语句使用delete标签 --><!--  在select标签中编写一条select语句实现查询效果  --><!-- 编写具体的SQL语句,使用id属性唯一的标记一条SQL语句 --><select id="selectEmployee" resultType="com.zengchuiyu.mybatis.entity.Employee"><!-- Mybatis负责把SQL语句中的#{}部分替换成“?”占位符,在#{}内部还是要声明一个见名知意的名称 -->select emp_id empId,emp_name empName,emp_salary empSalary from t_empwhere emp_id=#{empId}</select>
</mapper>

③创建Mapper接口

public interface EmployeeMapper {Employee selectEmployee(Integer empId);
}

Mybatis中的Mapper接口相当于以前的Dao。但是区别在于,Mapper仅仅是接口,我们不需要提供实现类。

运行的思路为:


通过映射对应的方式成功将三层架构中的dao层的实现类改变成通过配置文件编写SQL语句,实现解耦,再通过动态代理生成接口的代理类对象,实现通过其对数据库操作

④ 单元测试

@Test
public void testSelectEmployee() throws IOException {// 1.从工厂对象中获取SqlSession对象SqlSession session = sessionFactory.openSession();// 2.通过SqlSession对象获取Mapper接口对象EmployeeMapper employeeMapper = session.getMapper(EmployeeMapper.class);// 3.调用Mapper接口的方法Employee employee = employeeMapper.selectEmployee(2);// 4.打印返回值System.out.println("employee = " + employee);// 5.关闭Sessionsession.close();
}

查询成功!

对于程序运行的认识

框架会在初始化时将XML文件读取进来,封装到对象中,再然后就都是Java代码的执行了,XML中的配置是没法执行的。

MyBatis的环境搭建(图文)相关推荐

  1. mybatis的环境搭建及如何和搭配spring使用

    本次博客主要介绍mybatis的环境搭建及如何和搭配spring使用,关于动态sql的部分可能会放在后面找一个专题来写.建议要有一定的ibatis的基础 1maven组织结构所需要的jar包 01 & ...

  2. php强类型 vscode,VSCode + WSL 2 + Ruby环境搭建图文详解

    vscode配置ruby开发环境 vscode近年来发展迅速,几乎在3年之间就抢占了原来vim.sublime text的很多份额,犹记得在2015-2016年的时候,ruby推荐的开发环境基本上都是 ...

  3. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一) 1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee ...

  4. SSM框架的搭建学习(1)---MyBatis的环境搭建

    SSM(Spring+SpringMVC+MyBatis)框架为当今最为流行的WEB开发框架之一,基本上涉及数据库的一些增删改查操作都可以借用此框架,本尊此前接的一个小公司关于楼宇空调监控指标的项目就 ...

  5. vs2015html5环境配置,visual studio 2015 PreView环境搭建图文教程

    2014年11月13日,微软发布了Visual Studio 2015 Preview,跟随者Visual Studio 2015 而来的是,.net 开源,C#支持wp,ios,android三大系 ...

  6. 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建

    从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建 本文简介 为什么使用Spring Boot 搭建怎样一个环境 开发环境 导入快速启动 ...

  7. spring boot+mybatis框架环境搭建

    配置spring boot+mybatis框架环境搭建 一, spring boot 环境搭建 以下步骤为 1,新建maven工程 2.在pom文件中添加: spring-boot-starter-p ...

  8. SpringBoot+Mybatis+Swagger2环境搭建

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:calebman https://www.jianshu.c ...

  9. 服务器php环境搭建教程,PHP服务端环境搭建图文详解

    PHP环境搭建也是一门技术,本文主要为大家分享一篇PHP服务端环境搭建的图文教程,具有很好的参考价值,希望对大家有所帮助. 一.PHP服务端环境搭建 1.php 服务端环境 安装套件 xampp(ap ...

  10. android切环境插件,Android Studio下Flutter环境搭建图文教程

    一.Flutter介绍 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面.Flutter可以与现有的代码一起工作.在全世界,Flutter正在被越来越多的 ...

最新文章

  1. 企业项目构建学习(一)maven
  2. 常用几种数据库连接字符串
  3. 全面学习Prometheus
  4. [vim]vim 插件汇总
  5. linux socket通信编程之c语言(客户端和服务器程序)
  6. java se拖动插件_JQuery之拖拽插件
  7. linux zx命令_LINUX命令自用
  8. Django中URL和View的关系
  9. 计算机管理系统功能模块,设备管理系统功能模块
  10. 关于临时指针变量和其他临时变量的区别
  11. verilogHDL实现pwm控制
  12. linux 网络安全工具,常用的Linux网络安全工具简介
  13. SAP UI5 应用开发教程之八十二 - 采用 OPA5 开发支持页面跳转的 SAP UI5 集成测试用例试读版
  14. python划分有限元网格_有限元网格划分心得
  15. 聋人大学生终于开通了CNSD博客,CNSD在这里记录自己成长
  16. 乐教乐学显示服务器故障怎么了,乐教乐学常见问题有哪些,如何解决闪退问题...
  17. MAML:Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks论文精读及详解
  18. 使用OpManager Plus进行网络运行管理
  19. 自动化测试unittest框架
  20. Java、显示分期还贷时间表

热门文章

  1. 【模拟信号】基于matlab标准调幅信号产生+解调【含Matlab源码 984期】
  2. 【语音隐写】基于matlab小波变换算法求解水印嵌入提取【含Matlab源码 513期】
  3. 【图像分割】基于matlab直觉模糊C均值聚类图像分割IFCM【含Matlab源码 120期】
  4. 【C++】演讲比赛流程管理系统
  5. 伍楼阁使用的WordPress代码高亮插件使用说明
  6. Yii2的redis扩展
  7. ON_EVENT 报错
  8. ESX中的虚拟机中安装虚拟机的实现
  9. 解决QSqlTableModel::setData()崩溃的问题
  10. 为什么谈设计总爱提老庄之道