Mybatis--01
mybatis 封装jdbc访问代码的一个框架 (hibernate) ORM对象关系映射
SpringMVC:用来封装servlet的框架 (struts)
Spring:体系整合框架,其他框架的粘合剂
框架:整个或者部分系统的可重用设计,
优点:1、灵活可配置:将写死的代码放到配置文件中
2、复用性高:将反复使用的代码抽取封装
3、对底层细节进行封装,提供了方便调用的api
主要内容:
1 mybatis 介绍
2 入门 :使用jdbc操作数据库存在的问题
Mybatis的架构
Mybatis的入门程序
3 Dao的开发
原始dao的开发
动态代理方式
4 SqlMapConfig.xml文件说明
一。介绍
持久层框架,对jdbc的操作进行封装,只需关注sql本身,不用处理加载驱动、创建连接、创建语句等过程
通过xml过着注解的方式将要执行的各种statement(statement、preparedStatement、CallableStatement)配置起来,并且通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后油mybatis框架执行sql语句,并将结果映射成java对象并且返回。
二、
2.1使用jdbc的问题总结:
导入jar
创建工程
步骤:
1、加载驱动
2、获取连接
3、创建语句对象
4、设置sql语句
5、设置sql参数(preparedStatement)
6、执行sql
7、关闭资源
缺点:资源浪费、硬编码不容易维护、preparedStatement占位符不移维护、结果集的解析硬编码
实例:
1、配置数据库jdbc

2、配置mybatis的配置文件

3、创建entity类 User
4、为User配置user。xml文件

其中的id使用#{id} or #{value}
5、测试数据库连接和数据获取



控制台提示logger 需要打印日志

Mybatis的增删改查
模糊查询:

在运行的java类中调用 session.selectList方法获取 List<User>
添加对象:


使用标签实现插入数据后返回主键的值 主键回填

修改记录:

session.udpate commit
删除用户:

session.delete
Mybatis 工作原理以及流程:

优点:
1 节省资源
2 sql语句在xml文件中和java‘代码分离
3 将对象自动映射到sql语句 通过parameterType定义输入参数类型
4 将sql执行结果映射到java对象 通过stateme 的resultType定义输出结果的类型
使用反射机制
mybatis两种方式:
1.原始的dao方法

2.使用mapper代理进行开发
(1)namespace和Dao接口的名称保持一致(原本是实体类的名称)

代理实现类的流程

总结:mybatis是基于动态代理实现的,cglib.jar
原始Dao开发中的问题:
重复代码 SQLSession
不存在硬编码问题(方法和id之类的东西)

使用mapper代理,不需要创建DaoImpl就可以实现
mapper动态代理的开发规范:
只需要编写mapper接口(Dao 接口)
1、mapper.xml文件中的namespace与mapper接口的类路径相同
2、mapper接口方法名和mapper.xml文件中的每个sql的id
3、parameterType
4、resultType
mapper.xml映射文件:
内容同user.xml文件 修改namespace的值为UserMapper接口路径,并将UserMapper.xml文件放大classpath下的mapper目录
当mapper文件特别多的时候 可以再mybatis的配置文件中批量扫描



mybatis配置文件中的其他属性


别名标签


别名默认使用类名的小写



简单类型 支持自动别名




Mybatis--01的更多相关文章
- Hello Mybatis 01 第一个CRUD
What's the Mybatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google c ...
- 框架学习-MyBatis(01)
1.MyBatis是持久层框架 什么是持久化: 狭义:把数据永久性的保存到数据当中 广义:针对于数据库的所有操作都称为持久化操作,CreateReadUpdateDelete操作 2.有哪些持久层框架 ...
- MyBatis 01 概述
官网 http://www.mybatis.org/mybatis-3/zh/index.html GitHub https://github.com/mybatis/mybatis-3 简介 MyB ...
- mybatis 01: 静态代理 + jdk动态代理
背景 有时目标对象不可直接访问,只能通过代理对象访问 图示: 示例1: 房东 ===> 目标对象 房屋中介 ===> 代理对象 你,我 ===> 客户端对象 示例2: 运营商(电信, ...
- 01 Mybatis 的配置和使用
一.Mybatis 是什么 MyBatis 是一个支持普通SQL查询.存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装.MyB ...
- 编程从入门到放弃(Java)
1.Java入门篇 1.1 基础入门和面向对象 1.1.1 编程基础 [01] Java语言的基本认识 [02] 类和对象 [03] 类的结构和创建对象 [04] 包和访问权限修饰符 [05] 利 ...
- Spring 08: AOP面向切面编程 + 手写AOP框架
核心解读 AOP:Aspect Oriented Programming,面向切面编程 核心1:将公共的,通用的,重复的代码单独开发,在需要时反织回去 核心2:面向接口编程,即设置接口类型的变量,传入 ...
- 01.MyBatis入门
MyBatis入参考文档:http://mybatis.org/mybatis-3/zh/ 1.使用MyBatis前的准备 1.增加Maven依赖 <dependency> &l ...
- 01 mybatis框架整体概况(2018.7.10)-
01 mybatis框架整体概况(2018.7.10)- F:\廖雪峰 JavaEE 企业级分布式高级架构师课程\廖雪峰JavaEE一期\第一课(2018.7.10) maven用的是3.39的版本 ...
- mybatis第二天01
MyBatis第二天01 1.高级结果映射 1.1根据视频案例,分析表之间的关系 数据模型分析 1. 明确每张表存储的信息 2. 明确每张表中关键字段(主键.外键.非空) 3. 明确数据库中表与表之间 ...
随机推荐
- Web 学习笔记(一)百度统计
一.百度统计是什么? 百度统计是百度推出的一款免费的专业网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站,在网站上做了些什么,有了这些信息,可以帮助用户改善访客在用户的网站上的使用体验,不 ...
- apt-get使用命令
apt-get的卸载命令:remove/purge/autoremove/clean/autoclean apt-get purge / apt-get –purge remove 删除已安装包(不保 ...
- 前端面试题整理—HTML/CSS篇
1.简述一下你对HTML语义化的理解 1)用正确的标签做正确的事情 2)html语义化让页面的内容结构化,结构更清晰,便于对浏览器.搜索引擎解析 3)即使在没有样式CSS情况下也以一种文档格式显示,并 ...
- termux 开启 sshd
众所周知, termux 上的 sshd 不能通过 IP 连接, 只能使用密钥, 对于使用 PuTTY 的 Windows 用户, 怎么办呢? 由于 PuTTY 支持 telnet, 而 termux ...
- AAndroid Studio的\drawable还是mipmap
图片应该放在drawable文件夹下,而mipmap文件夹只适合放app icons
- exec存储过程示例
假如存储过程为test,两个参数为aa,bb那么有以下两种写法,不要带括号EXEC [dbo].[test] @aa = 111, @bb = 222 exec test 111,222
- Newtonsoft.Json 的基本用法
Ø 前言 说起 C# 对 JSON 的操作(序列化与反序列化),大家都会想到 JavaScriptSerializer.DataContractJsonSerializer 与 Newtonsoft ...
- Nginx正反向代理、负载均衡等功能实现配置
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 系统环境: VirtualBox Manager Centos6.4 nginx1.10.0 IP对应的机器名: IP ...
- Learn jQuery in y seconds
[兼容IE8以下没办法][虽不是Modern Web(不建议直接操作DOM)但也是一大利器] 个人推荐书[CSS 网站实录][JavaScript Dom 编程艺术][刚开始学不能太纠结机制机理原理因 ...
- 【bzoj 1143】[CTSC2008]祭祀river
Description 在遥远的东方,有一个神秘的民族,自称Y族.他们世代居住在水面上,奉龙王为神.每逢重大庆典, Y族都会在水面上举办盛大的祭祀活动.我们可以把Y族居住地水系看成一个由岔口和河道组成 ...