MyBatis入门
一、数据库JDBC的不足(面试题)
1.数据库连接不足:使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭造成数据库资源浪费、影响数据库性能
解决:使用数据库连接池管理数据库连接(连接池)
2.将sql语句硬编码(写死)到(Java)代码中,如果sql语句修改,需要重新编译Java代码,不利于系统维护
解决:将sql语句配置到xml配置文件中,即使sql变化不需要对java代码进行重新编译
3.向PreparedStatement中设置参数,对占位符位置和设置参数值,硬编码在Java代码中,不利于系统维护
解决:将sql语句及占位符和参数全部配置到xml中
4.ResultSet中遍历结果集数据局,存在硬编码将数据表的字段进行编码,不利于系统维护
解决:将查询的结果集,自动映射到java对象
说明:解决以上jdbc的4个不足,所以我们引入框架(MyBatis、Hibernate)

二、框架技术
MyBatis:持久化框架
数据库:关系型数据库
萌芽阶段——文件系统
使用磁盘文件来存储数据
初级阶段——第一代数据库
出现了网状模型、层次模型的数据库
中级阶段——第二代数据库
关系型数据库和结构化查询语言
高级阶段——新一代数据库
“关系-对象”型数据库
1.框架:模板
2.优点:更快、更好、更安全、更高效的写代码
3.框架技术:

:是一个应用程序的半成品
:提供可重用的公共结构
:按一定的规则组织一组组件
说明:
A:有了框架可以不写重复性的代码
B:组件就是很多jar文件
4.分析优势:
:不用再考虑公共问题
:专心在业务实现上
:结构统一,易于学习、维护
:新手也可以写出好程序
5.框架介绍:
Struts 2:在MVC模式中替换web层的实现、即可业务控制器Servlet的替代方案
Hibernate:简化数据库操作,替代DAO方案
Spring:
:依赖注入容器(IoC)/AOP实现
:声明式事务
:简化J2EE应用
:黏合剂,将大家组装到一起
说明:J2EE整合方案,相当于大管家,这是最重要、最核心的框架
Spring MVC:等同于Struts 2,是Spring框架的一部分,是Spring对Web框架的延伸、实现
MyBatis:等同于Hibernate,但是与Hibernate有本质区别
:半自动化的ORM实现
:DAO层
:动态SQL
:小巧灵活、简单易学
总结:框架提供了便捷,但是程序外加了壳子,相互调用上有所损耗,特别是对接方面

三、SL会员商城项目
1.产品功能:

2.数据库:

3.数据库设计:

:表:实体就是一张表
:逻辑外键关联:在实际开发中,一般不建立主外键关联关系,主外键属于强关联,所以业务变更会出现各种麻烦,所以一般应用“逻辑外键关联”

四、MyBatis认识
1.介绍:
MyBatis本是Apache的开源项目iBatis,2010年这个项目由apache software Foundation迁移到google code,并且改名为mybatis,2013年11月到Githup
MyBatis是支持普通sql查询,存储过程和高级映射的优秀持久层框架,MyBatis消除了几乎所有的JDBC代码和参数手动设置以及结果集检索,MyBatis使用简单的xml或注解用于配置和原始映射、将POJO(Plain Old Java Object,普通Java对象)映射到数据库中的记录
ORM(Object Relation Mapping):对象关系映射

:编写程序的时候,以面向对象的方式处理数据
:保存数据的时候,却以关系型数据库的方式存储
ORM解决方案包含下面4个部分
:在持久化对象上执行基本的增、删、改、查操作
:对持久化对象提供一种查询语言或者API
:对象关系映射工具
:提供与事务对象交互、执行检查、延迟加载以及其他优化功能
2.下载:https://github.com/mybatis
说明1:
官网:https://www.mybatis.org
托管:https://github.com/mybatis/mybatis-3/releases
说明2:
mybatis-3.2.2.zip:下载jar包
Source code(zip):下载jar对应的源文件
Source code(tar.gz):linux开发
3.文档结构:
lib文件夹
LICENSE认证文件
mybatis-3.2.2.jar
mybatis-3.2.2.pdf
NOTICE文件
说明:
lib:依赖包
:asm-3.3.1.jar:操作Java字节码的类库
:cglib-2.2.2.jar:动态集成Java类,或者实现接口包
:log有关:与日志有关系
:javassist-3.17.1-GA.jar:分析、编辑创建字节码的类库
:log4j-1.2.17.jar日志打印包
:slf4j-api-1.7.5.jar:日志API文件
:slf4j-log4j12-1.7.5.jar:日志驱动包
mybatis-3.2.2.jar:核心包
mybatis-3.2.2.pdf:帮助文件
4.日志插件及文件:
log4j-1.2.17.jar
log4j.properties
5.配置文件:mybatis-config.xml
说明:配置文件mybatis-config.xml与log4j.properties等企业级的配置文件都将建议创建resources文件夹下(推荐)或直接放在src根目录下也可以,mybatis的配置文件的命名也可以结合自己的需要更换名称
作用:最主要连接数据库与jdbc一样
:创建方法:
A:创建xml文件:需要导入头文件
B:在帮助文件:mybatis-3.2.2.pdf中进行导入
:mybatis-config.xml和映射文件mapper的自动提示:
A:解压mybatis-3.2.2.jar文件
B:位置:
config:org\apache\ibatis\builder\xml\mybatis-3-config.dtd
mapper:org\apache\ibatis\builder\xml\mybatis-3-mapper.dtd
C:自动提示:
config:-//mybatis.org//DTD Config 3.0//EN
mapper: -//mybatis.org//DT Mapper 3.0//EN
方法:windows→preference→xml→catalog→
:配置模板:

My Batis入门相关推荐

  1. 一:My Batis快速入门

    ---恢复内容开始--- 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检 ...

  2. Spring Boot Mybatis入门示例

    Spring Boot Mybatis 入门示例 基于Spring Boot 2.3.4,Junit5 步骤说明     整个工程的最终目录结构如下,添加文件或者新建的目录的参考: └─src├─ma ...

  3. java web开发入门学习笔记(手打超细版)

    我刚实习的时候写的,先分享分享吧,当时写的也不容易.有错的话请指出,博主会修正,适合入门小白当资料使用.包括包括java基础.数据库.js.jQuery.css.html等等知识点. 详细笔记内容如下 ...

  4. 初识 My Batis一 什么是My Batis,JDBC缺点,My Batis简化,Mapper 代理开发,My Batis 核心配置文件

    文章目录 MyBatis 什么是MyBatis? 持久层 框架 JDBC缺点 Mybatis简化 MyBatis快速入门 查询 user 表中所有数据 解决 SQL 映射文件的警告提示 Mapper代 ...

  5. My Batis 基础及简单的增删改查操作

    My Batis My Batis 是一款优秀的持久层 框架,用于简化JDBC的开发 官网 持久层: 负责将数据保存到数据库的那一层代码. JavaEE三层架构:表现层,业务层,持久层 框架: 框架就 ...

  6. 用Construct 2制作入门小游戏~

    今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...

  7. Docker入门六部曲——Swarm

    原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...

  8. Docker入门六部曲——Stack

    原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...

  9. Docker入门六部曲——服务

    原文链接:http://www.dubby.cn/detail.html?id=8735 准备 已经安装好Docker 1.13或者以上的版本. 安装好Docker Compose.如果你是用的是Do ...

最新文章

  1. 第一家公立大学支持比特币支付学费
  2. 程序员们请收好这本JVM日历:Java 2018大事回顾
  3. vue delete删除json数组_vue面试题总结(二)
  4. 如何设置共享Mac上的视频、音乐或照片的教程
  5. PHP全文索引 讯搜xunsearch
  6. 海康摄像SDK开发笔记(一):海康威视网络摄像头SDK介绍与模块功能
  7. Matlab中imnoise函数的用法
  8. Oracle备份与恢复介绍
  9. 配置单交换机VLAN划分
  10. 2021年起重机司机(限桥式起重机)考试题及起重机司机(限桥式起重机)免费试题
  11. 新手练字又快又好的方法
  12. 小米智能音箱使用体验:大树底下好乘凉
  13. python,matlab 读取NIFTI(.nii)格式图像、FSL安装
  14. 古方怡雪祛斑效果怎么样,实话实说!
  15. 程序设计入门——C语言笔记(第4周-第5周)
  16. 锐捷服务器虚拟化技术_信息化的好拍档,锐捷助力南昌市第五医院再迎新征程...
  17. 学习方法推荐——时间管理
  18. HTML期末作业-基于HTML+CSS+JavaScript制作学生信息管理系统模板
  19. Python爬虫--Selenium模拟用户的键盘鼠标操作
  20. matlab神经网络应用设计,神经网络及其matlab实现

热门文章

  1. java rabbitmq vhost_Rabbitmq~对Vhost的配置
  2. 在cmd中切换到指定目录
  3. vue中将链接转二维码图片,2张图合成为1张图
  4. cnbloger: 范振勇, 虚拟机上安装centos8.0[(vmware-15-pro)]
  5. Tomcat基础《三》----负载均衡
  6. ACL2020_A Novel Cascade Binary Tagging Framework for Relational Triple Extraction
  7. NLP - 词性标注(tagging)
  8. 一文搞懂让你懵圈的超级计算机:真的不是堆CPU就行
  9. 微信小程序 组件左右对齐
  10. 什么是jsp?jsp的内置对象有哪些?