初始MyBatis
初始MyBatis
- 框架的概念:
框架是一个提供可重复的功用结构的半成品。它为我们构建新的应用程序提供了极大的便利,一方面提供了可以拿来就用的工具,更重要的是提供了可重用的设计。D
- 框架技术的优势:
1.不在考虑公众问题框架已经帮我们做好了
2.可以专心用于业务逻辑,保证核心业务的开发和质量
3.结构统一便于学习和维护
4.框架集中了前人的经验,可以帮助新手写出稳定新能优良且结构优美的高质量程序K
3.主框架的介绍:
1.Strus 2框架
2.Hibernate框架
3.Spring 框架
4.Spring MVC框架
5.MyBatis 框架Z
4.数据持久化概念:
数据持久化是将内存中的数据模型转换为储存类型,以及将储存类型转换为
内存中的数据模型的统称,:(半自动化是实体类和SQL语句建立的映射关系)
5.MyBatis框架简介:
MyBatis是一个开源的数据持久层框架。它内部封装了JDBC访问数据的操作,支持普通的SQL查询,储存过程和高级映射,几乎消除的JDBC代码和参数的手工设置以及结果集的搜索
6.什么是ORM:
ORM(Object/Relational Mapping)即对象/映射关系,是一种数据持久化技术。
7.MyBatis环境搭建步骤:
1.下载需要的jar文件
2.部署jar文件
3.创建MyBatis核心配置文件configuration.xml(全局配置)
4.创建持久化类(POJO)和SQL映射文件
5.
8.MyBatis的优缺点
1.优点:
(1)与JDBC相比减少了百分之50代码量
(2)是最简单的持久化框架,小巧并且简单易学。
(3)相当灵活不会对应用程序或者数据库的现有设计加强任何影响,SQL写在xml里从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用
(4)提供xml标签,支持写动态SQL语句
(5)提供映射标签,支持对象与数据库的ORM字段关系映射
- 缺点:
(1) SQL语句编写工作量大,对开发人员编写SQL语句有一定能力要求。
(2) SQL语句依赖于数据库导致数据库移植性差,不能随意更换数据库。
9.MyBatis 基本要素---核心对象
1.SqlSessionFactoryBuilder作用:负责构建SqlSessionFactory,并且提供多个build()方法的重载
.SqlSessionFactoryBuilder的生命周期和作用域:
最大特点就是用过即丢,一旦创建了SqlSessionFactory对象之后这个类就不在需要了,因此SqlSessionFactoryBuilder的最佳作用范围就是存在于方法体内,也就是局部变量而已。
2.SqlSessionFactory的作用:
就是创建SqlSession实例工厂
SqlSessionFactoryBuilder 的生命周期和作用域:
一旦创建了就在整个应用运行过程中始终存在,没有理由去销毁或者再次创建它,并且运行中不建议多次创建,因此最佳作用域是Application跟着应用的生命周期一同存在。
3.SqlSession 作用:
用于执行持久化的操作对象,类似于JDBC中的Connection。它提供了面向数据库执行SQL语句的所有方法,可以通过SqlSession实例直接运行已映射的SQL语句
SqlSession 的生命周期和作用域:
对应着一次数据库会话。由于数据库会话不是永久,因此生命周期也不应该是持久的,相反在每次访问数据库时都要创建它,(可以执行多次,但是一旦关闭就需要重新创建,)创建SqlSession的地方只有一个,就是SqlSessionFactory对象的openSession()方法。
SqlSession的两种使用方式:
(1) 通过SqlSession实例来直接执行已映射的SQL语句。通过调用selectList()方法执行
(2) 基于mapper接口方式操作数据。(提供接口方法getUserList())
10.MyBatis 基本要素—核心配置文件:
(1)properties元素:
描述的外部化,可替代性属性,(具体方法见(P28))。
(2)settings元素:
设置一些重要的设置选项,用于设置和改变MyBatis运行中的行为
(1) cacheEnabled:对在此配置文件下所有cache进行全局性开/关设置
(2) lazyLoadingEnabled:全局性设置赖加载,如果设置为false则所有相关联的都会被初始化加载
(3) autoMappingBehavior:MaBatis对于resultMap自动映射的匹配级别(NONE/PARTIAL/FULL)
(3) typeAliases元素:
作用是配置类型别名,通过与MyBatis的SQL映射文件相关联减少输入多余完整类名,以简化操作
(4) environments元素:
可以配置多套运行环境,如开发环境,测试环境,生产环境可以灵活的配置,从而将SQL语句映射应用到不同的数据库环境上,可以通过这个元素来配置。必须是唯一的运行环境每个数据库对于这一个SqlSessionFactory实例的。见(P30下方)
(5) mappers元素:
mappers映射器,用来定义SQL的映射语句,我们只需要高MyBatis去哪里找到这些SQL语句,即去哪里找相应SQL映射文件,可以使用类资源路径或URL等见(P31)
初始MyBatis的更多相关文章
- 初始MyBatis、SQL映射文件
MyBatis入门 1.MyBatis前身是iBatis,是Apache的一个开源项目,2010年这个项目迁移到了Google Code,改名为MyBatis,2013年迁移到GitHub.是一个基于 ...
- 初始Mybatis,好累,自己感觉自己快坚持不了了
Mybatis1.持久化 持久化,就是内存数据和硬盘数据状态的转换 2.ORM思想Object Relation Mapping 对象关系映射 3.MyBatis入门案例 3.1导入jar包 依赖 & ...
- Mybatis学习——初始MyBatis
什么是MyBatis框架? MyBatis框架是一种ORM(既对象关系映射)框架. 什么是ORM框架? 是一种为了解决面向对象与关系数据库之间数据不匹配的技术,它通过描述Java对象和关系数据库表之间 ...
- MyBatis别名与util类技能了解
1.别名 在java中String类型就是String类型,但是在MyBatis中可不会识别java中的类型,在MyBatis中String类型的别名是'string',小写的String,或者也可以 ...
- MyBatis(介绍和环境配置)
ORM(Object Relational Mapping) 设计模式,思想 对象关系映射,是一种数据持久化技术.它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过JavaBea ...
- MyBatis 框架系列之基础初始
1.什么是 MyBatis MyBatis 本是 apache 的一个开源项目 iBatis,后改名为 MyBatis,它 是一个优秀的持久层框架,对 jdbc 的操作数据库的过程进行封装,使开发者只 ...
- mybatis 初始
接下来带着大家建立一个mybatis的初级项目 首先我们利用idea利用maven建立一个空项目 然后输入名称什么的就会创建一个空的maven项目了 然后我们需要在项目总得pom.xml中进行配置信息 ...
- Mybatis初始
1.Mybatis 的作用 完成基本的sql语句 和 存储过程 高级的对象关系映射(ORM) 框架 封装了几乎所有的 JDBC 代码 参数的手工设置 结果集的遍历 2.Mybatis 框架的主体构成 ...
- mybatis笔记 - 初始配置及dao的封装
1.用户实体类 package com.javasm.entity; /** * *TODO 用户表实体类 * @author CaoLei 2018年6月26日上午10:50:12 * Manage ...
随机推荐
- 三分钟浅谈TT猫的前端优化
首先看一张访问TT猫首页的截图: 测试环境为谷歌浏览器,暂且不讨论其它浏览器,截图下方我们可以观察到以下参数: DOMContentLoaded:1.42s | Load:2.31s 以上参数是在CT ...
- Cygwin-添加到右键菜单脚本--一键安装、卸载
平时习惯用一些linux命令来完成工作,在Windows上有cygwin和gitbash两个选择.这两个我都装了. 相对来说cygwin支持的功能更多一些,但是它没有默认绑定到右键菜单.为此,我想到用 ...
- windows下LINUX模拟终端Cypwin以及Vim的配置使用
Cypwin的安装 从官网下载相应版本后,直接安装. 官网地址:Cypwin 安装过程中可以选择相应的Packages,我们需要安装的Vim就需要在这一步中选择相应的包. Cypwin的使用 纯命令行 ...
- win10 uwp 后台获取资源
本文告诉大家,从后台代码获取界面定义的资源. 如果一个资源是写在 App 的资源,那么如何使用代码去获得他? 简单的方法是使用下面的代码 Application.Current.Resources[& ...
- UWP 绘制图形
UWP图形和wpf变化不多 一般用到有椭圆.长方形.多边形.线 不过如果用的好,可以做出很漂亮的界面 一般使用画图都是使用Shape 类,Shape 类具有一个与其关联的画笔并可以呈现到屏幕,包括 L ...
- WPF 只允许打开一个实例
我们有时候只希望我们的程序只打开一个实例,也就是我们的软件只有一次被打开. 那么我们可以通过一个办法知道,在这个软件打开前是不是打开过一个,还没关闭.也就是是否存在另一个程序在运行. 下面是一个简单方 ...
- C# MessageBox.Show每隔3秒自动关闭
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- Java数据结构和算法总结-字符串及高频面试题算法
前言:周末闲来无事,在七月在线上看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家.什么字符串在算法中有多重要之类的大路边上的客套话就不多说 ...
- JAVA WEB 中涉及的编解码
1.对URL解码 1)URI部分解码:<Connector URIEncoding="UTF-8" /> 2)QueryString解码要么是 Header 中 Con ...
- PhiloGL学习(2)——骚年,让我们荡起双桨
前言 上一篇文章中简单介绍了PhiloGL框架如何上手.GLSL语言以及简单的绘制一个方块(见PhiloGL学习(1)--场景创建及二维方块加载).本文很简单,我们一起来让这个方块动起来. 一. ...