My Batis入门
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入门相关推荐
- 一:My Batis快速入门
---恢复内容开始--- 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检 ...
- Spring Boot Mybatis入门示例
Spring Boot Mybatis 入门示例 基于Spring Boot 2.3.4,Junit5 步骤说明 整个工程的最终目录结构如下,添加文件或者新建的目录的参考: └─src├─ma ...
- java web开发入门学习笔记(手打超细版)
我刚实习的时候写的,先分享分享吧,当时写的也不容易.有错的话请指出,博主会修正,适合入门小白当资料使用.包括包括java基础.数据库.js.jQuery.css.html等等知识点. 详细笔记内容如下 ...
- 初识 My Batis一 什么是My Batis,JDBC缺点,My Batis简化,Mapper 代理开发,My Batis 核心配置文件
文章目录 MyBatis 什么是MyBatis? 持久层 框架 JDBC缺点 Mybatis简化 MyBatis快速入门 查询 user 表中所有数据 解决 SQL 映射文件的警告提示 Mapper代 ...
- My Batis 基础及简单的增删改查操作
My Batis My Batis 是一款优秀的持久层 框架,用于简化JDBC的开发 官网 持久层: 负责将数据保存到数据库的那一层代码. JavaEE三层架构:表现层,业务层,持久层 框架: 框架就 ...
- 用Construct 2制作入门小游戏~
今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...
- Docker入门六部曲——Swarm
原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...
- Docker入门六部曲——Stack
原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...
- Docker入门六部曲——服务
原文链接:http://www.dubby.cn/detail.html?id=8735 准备 已经安装好Docker 1.13或者以上的版本. 安装好Docker Compose.如果你是用的是Do ...
最新文章
- 第一家公立大学支持比特币支付学费
- 程序员们请收好这本JVM日历:Java 2018大事回顾
- vue delete删除json数组_vue面试题总结(二)
- 如何设置共享Mac上的视频、音乐或照片的教程
- PHP全文索引 讯搜xunsearch
- 海康摄像SDK开发笔记(一):海康威视网络摄像头SDK介绍与模块功能
- Matlab中imnoise函数的用法
- Oracle备份与恢复介绍
- 配置单交换机VLAN划分
- 2021年起重机司机(限桥式起重机)考试题及起重机司机(限桥式起重机)免费试题
- 新手练字又快又好的方法
- 小米智能音箱使用体验:大树底下好乘凉
- python,matlab 读取NIFTI(.nii)格式图像、FSL安装
- 古方怡雪祛斑效果怎么样,实话实说!
- 程序设计入门——C语言笔记(第4周-第5周)
- 锐捷服务器虚拟化技术_信息化的好拍档,锐捷助力南昌市第五医院再迎新征程...
- 学习方法推荐——时间管理
- HTML期末作业-基于HTML+CSS+JavaScript制作学生信息管理系统模板
- Python爬虫--Selenium模拟用户的键盘鼠标操作
- matlab神经网络应用设计,神经网络及其matlab实现
热门文章
- java rabbitmq vhost_Rabbitmq~对Vhost的配置
- 在cmd中切换到指定目录
- vue中将链接转二维码图片,2张图合成为1张图
- cnbloger: 范振勇, 虚拟机上安装centos8.0[(vmware-15-pro)]
- Tomcat基础《三》----负载均衡
- ACL2020_A Novel Cascade Binary Tagging Framework for Relational Triple Extraction
- NLP - 词性标注(tagging)
- 一文搞懂让你懵圈的超级计算机:真的不是堆CPU就行
- 微信小程序 组件左右对齐
- 什么是jsp?jsp的内置对象有哪些?