Mybatis-入门案例

1-框架概念

程序开发中的框架往往是对常见功能的封装,程序框架理解为基础或者机械标准件(例如螺丝螺母标准的机械部件)。

假如你要造一辆马车,在没有框架的情况下,你需要自己去伐木,去把木头做成木板,木棍,然后组成轮子,门,等部件,然后组装起来。但如果你用了框架,就相当于你有现成的轮子,门等部件,你只需要组装一下就可以了。一个框架是一组可复用的设计构件。

框架(Framework):是整个或者部分系统的可重用设计,是JavaEE底层技术的封装。框架是可以被开发者定制的应用骨架。框架是一个半成品,软件是成品。

2-三层结构

2.1分层方式

一个中大型软件开发需要有明确分层。

分层包 功能描述 作用
cn.guardwhy.view 表示层 View 面向客户,用于处理客户的输入和输出,前端的代码。
cn.guardwhy.service 业务层 Service 处理业务逻辑代码,如:登录,转账,挂号
cn.guardwhy.dao 数据访问层 DAO Data Access Object 也叫持久层。面向数据库,实现对数据库增删改查操作

2.2 分层的优缺点

优点

  • 降低了代码的耦合度,降低类与类之间关系。有利于团队的开发。
  • 项目的可扩展性更好,可维护性更好。
  • 可重用性更好,同一个方法可以由多个类去调用。

缺点

  • 执行效率更低,开发工作量更大
  • 会导致级联的修改,如果修改一个功能,导致三层都要进行修改。

3-mybatis简介

3.1 什么是Mybatis

  • MyBatis 是一款优秀的持久层框架。
  • MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程。
  • MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。
  • MyBatis 本是apache的一个开源项目ibatis, 2010年这个项目由apache 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

3.2 持久化

持久化是将程序数据在持久状态和瞬时状态间转换的机制

即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。JDBC就是一种持久化机制。文件IO也是一种持久化机制。

为什么需要持久化服务呢?

  • 有一些对象,不能让它消失。
  • 内存价格昂贵。

持久层

  • 完成持久化工作的代码块 . ----> dao层 (DAO (Data Access Object) 数据访问对象)
  • 大多数情况下,数据持久化往往也就意味着将内存中的数据保存到磁盘上加以固化,而持久化的实现过程则大多通过各种关系数据库来完成
  • 与系统其他部分相对而言,这个层面应该具有一个较为清晰和严格的逻辑边界。 说白了就是用来操作数据库的。

3.3 mybatis的优缺点

优点

  • 简单易学:mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个SQL映射文件即可。
  • 使用灵活:Mybatis不会对应用程序或者数据库的现有设计强加任何影响。SQL语句写在XML里,便于统一管理和优化。
  • 解除SQL与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易进行单元测试。

缺点

  • 编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。
  • SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。
  • 框架还是比较简陋,功能尚有缺失,二级缓存机制不佳。

3.4 ORM的概念

Object Relational Mapping 对象关系映射

  1. 在Java中编程:使用的是面向对象的开发方式。
  2. 在MySQL中写的SQL语句:使用的是关系型的数据库将表中的数据映射成一个对象,对象关系映射。

mybatis的两种映射方式

  1. 通过XML的配置文件。
  2. 通过注解的方式

3.5 下载安装

官网下载

Mybatis官方地址: http://www.mybatis.org/mybatis-3/

github下载

github地址: https://github.com/mybatis/mybatis-3/releases

4- Mybatis入门

4.1 项目准备

4.1.1项目目录

导入相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.guardwhy</groupId>
    <artifactId>Mybatis</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <!--倒入项目所需依赖-->
    <dependencies>
        <!-- mybatis相关依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
         <!-- mysql数据库相关依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值