一   .    Mybatis是什么?

Mybatis是一个持久层框架,其中编写的过程中sql语句是需要程序员自己去编写,Mybatis也有

一些映射(输入参数映射,输出参数映射),Mybatis是一个不完全的ORM框架。在项目应用中成本较低

不同于hib(成本较高) 在编写Mybatis中程序员只需要把精力放在sql语句上即可,Mybatis对sql

语句的优化非常方便,而hibernate 对sql语句的变更较Mybatis差,所以Mybatis适用于需求变化较多

的项目,比如互联网项目。(简化底层的sql)

二   .   Mybatis框架的执行过程

1.配置mybatis配置文件,SqlmapConfig.xml(https://www.cnblogs.com/g2vbn/p/9345659.html)

2.通过配置文件加载Mybatis运行环境,创建SqlSessionFactory会话工厂,通过SqlSessionFactory创建

SqlSession(面向接口{原始的dao,Mybatis的mappper接口})SqlSession提供操作数据库的方法

3. 调用SqlSession的方法去操作数据库(增删改查......)

4.释放资源

三    .   Mybatis开发dao层的方法:

Mybatis开发dao有两种方法

1.原始dao(需要程序员掌握,现在有的公司还在用)

需要编写dao接口的实现类 ,在dao实现类中注入SqlSessionFactory工厂

2.mapper代理开发()

需要编写mapper接口(就是dao接口)

程序员在编写mapper.xml和mapper.java时需要遵循开发规范:

(1)在mapper.xml中namespace就是mapper的类的全路经

(2) mapper.xml中statement的id鹅mapper.java中方法名一致

(3) mapper.xml中statement的parameterType指定输入参数的类型和mapper.java的方法输入参数类型一致

(4)mapper.xml中statement的resultType指定输出类型和mapper.java的方法返回值类型一致

四。输入输出映射

1.输入映射

parameterType:指定输入参数类型的可以简单类型,pojo ,hashmap....

对于综合查询,建议parameterType使用包装过的pojo,有利于系统维护,扩展

2.输出映射

resultType:

查询到的列名和resultType的属性名一致才能映射成功

resultMap:

可以通过resultMap完成一些高级映射

如果查询到的列名和映射的pojo属性名不一致时,通过resultMap设置列名和属性名之间的对应关系,可以完成映射

高级映射:将关联查询的列映射到一个pojo属性中(一对一)

将关联查询的列映射到一个List《pojo》中(一对多)

五. 动态Sql

if判断

where(去掉第一个and)

foreatch

sql片段

转载于:https://www.cnblogs.com/g2vbn/p/9345656.html

Mbatis是什么?怎么运行?相关推荐

  1. Git 教程 - Git 基本用法

    Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project  # 创建项目目录  cd project  # 进入 ...

  2. spring boot项目 中止运行 最常用的几种方法

    spring boot项目 中止运行 最常用的几种方法: 1. 调用接口,停止应用上下文 @RestController public class ShutdownController impleme ...

  3. Docker安装Apache与运行简单的web服务——httpd helloworld

    Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...

  4. 2022-2028年中国降解塑料聚酯行业运行动态及投资机会分析报告

    [报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了降解塑料聚酯行业相关概述.中国降解塑料聚酯行业运行环境.分析了中国降 ...

  5. GCC 链接 xxx:No such file or directory 及运行可执行文件 error while loading shared libraries: xxx.so 解决方案

    关于 GCC 提示找不到指定库文件的这个问题,通常出现在以下 2 个场景中: 利用静态库或者动态库文件实现链接操作(生成可执行文件)时,·GCC 可能会提示 xxx:No such file or d ...

  6. Linux shell 学习笔记(12)— linux 信号、后台运行脚本、作业控制、定时运行任务

    1. 处理信号 1.1 Linux 信号 常见的 Linux 信号如下表所示: 信号 值 描述 1 SIGHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9 SIGKILL ...

  7. Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)

    1. os与sys模块的官方解释如下: os This module provides a portable way of using operating system dependent funct ...

  8. 如何使用vs来运行box2d中Testbed的案例

    0 环境 vs: vs2012 box2d: Box2D_v2.1.2 1 得到box2d编译版本 可以参考: https://blog.csdn.net/sty945/article/details ...

  9. jdk12‘javac‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    前言: 安装JDK12遇到的问题以及学习过程, 我第一次用网上的安装办法,下载EXE后,配置好三个环境变量后运行,不行. 解决过程: 问题1:安装后javac命令运行时报错 jdk12'javac' ...

最新文章

  1. jsp截取字符串前几位_7. Python3轻食丨丛林里的野蛮生长:无处不在的字符串(一)
  2. 数据蒋堂 | 大数据计算语法的SQL化
  3. jenkins打完包在哪里
  4. Spring 详解(二):IOC 和DI
  5. go get github.com/tealeg/xlsx timeout 超时
  6. get online 免费注册一级.online后缀的域名
  7. Python学习入门7:python学习从基础到高手,再到就业
  8. 单片机之魂——定时器、中断
  9. Linux运维问题解决(4)——linux LVM技术 逻辑卷增加 扩容 缩小 删除等操作
  10. 中小型研发团队架构实践:应用监控怎么做?
  11. shell脚本学习指南-学习(2)
  12. linux下编译libyuv,Android ndk cmake编译libyuv
  13. 解决edge可以访问github,谷歌却无法访问的问题
  14. Mybatis XML文件属性配置
  15. vue 点击当前路由怎么重新加载_Vue 路由切换时页面内容没有重新加载的解决方法...
  16. 基于 WeDataSphere Prophecis 与 KubeSphere 构建云原生机器学习平台
  17. 0-1背包问题和背包问题
  18. Sybase PowerDesigner 的palette(工具箱)怎么打开
  19. Html5:生成个玫瑰线图案
  20. UES:地域有界,资产无国界

热门文章

  1. 学习cluster技术
  2. Flutter透明度渐变动画FadeTransition实现透明度渐变动画效果
  3. nginx+tomcat实现负载均衡集群
  4. python-Day03
  5. 内部类的小总结(语法和用法方面)
  6. Category类别、继承
  7. Codeforces 923 B. Producing Snow
  8. Swift项目开发实战-基于分层架构的多版本iPhone计算器-直播公开课
  9. 利用记录型信号量解决不会出现死锁的哲学家就餐问题
  10. 《汇编语言》课程设计