mybatis复习01
1.mybatis的历史:
mybatis是apache的一个开源项目,2010被google收购,转移到google code.
mybatis是一个优秀的持久层框架,对jdbc操作进行了封装,是操作数据库变得简单。 2.mybatis的架构和工作原理
mybatis的原理:
通过xml或者注解配置需要执行的statement(prepareStatement,CallableStatement)
然后进行输入映射,生成需要执行的sql信心保存在MappedStatement中,通过mybatis执行后
把输出映射的结果返回。
架构:
sqlMapConfig.xml(全局配置文件)
mapper01.xml mapper02.xml ...(映射文件)
executor (执行器,本质:接口)
普通执行器 带缓存的执行器(默认) 输入映射 statement 输出映射 3.mybatis核心过程:
加载全局配置和映射文件,生成sqlSessionFactory
通过绘画工厂,生成sqlSession
sqlSession进行数据库操作,底层是有执行器executer实现的。
事物提交
sqlSession关闭 4.入门
git下载压缩包
解压了解目录
lib
核心包
帮助文档pdf
其他 创建javaee项目
创建lib文件夹
粘贴jar包
lib
核心
数据库驱动包
单元测试包
(build) 添加log4j.properties
添加配置文件
全局配置文件sqlMapConfig(头通过复制得到)
环境包括:
事物配置
dbcp数据库连接池配置
映射文件加载配置 映射文件mapper.xml(头通过复制得到) 创建model:User
创建sqlmap:User.xml
写sql语句
junit单元测试:增删改查
优化:
加入@before@after(单元测试相关) 实现增删改查 #{}:占位符
基本数据类型,#{可随便填写} pojo类
map ${}:字符拼接
基本数据类型,${value}固定格式 pojo类
map 主键自增,返回主键。 5.dao开发(不常用)
编写dao(UserDao接口),daoimpl(接口实现) 6.mapper动态代理开发
dao包不要,sqlmap包不要 创建mapper包代替上面两个,遵循规则:
(1)创建接口UserMapper,然后生命方法。创建UserMapper.xml,映射文件命名空间和接口相对路径一致
(2)方法名一致
(3)返回值类型一致
(3)参数只能有一个,保持一致。 进行单元测试(5,6相当于4的分支) 7.全局配置文件优化
(1)数据库连接池dbcp优化。创建db.properties。添加标签...???(setting标签了解)
(2)别名配置
typeAlias
package(指向model包,直接使用小写)
(3)配置加载映射
mapper
class(同包UserMapper.xml和UserMapper.java,并且名称一致);
可以使用注解开发@insert("sql语句")在接口上直接打注解
package(同包UserMapper.xml和UserMapper.java,并且名称一致) 8.映射文件
输入映射:基本数据类型,pojo(queryVo),map 输出映射:基本数据类型,pojo(list),map
(----输出映射还没复习-----)
mybatis复习01的更多相关文章
- Bone Collector(复习01背包)
传送门 题目大意:01背包裸题. 复习01背包: 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总 ...
- mybatis 复习笔记01
本文内容转自传智播客笔记 1. 问题总结 1). 数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能. 设想:使用数据库连接池管理数据库连 ...
- 03 Mybatis:01.Mybatis课程介绍及环境搭建&&02.Mybatis入门案例
mybatis框架共四天第一天:mybatis入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 -------------------------------------- ...
- Mybatis 复习 Mybatis 配置 Mybatis项目结构
pom.xml文件已经贴在了文末.该项目不使用mybatis的mybatis-generator-core,而是手写Entities类,DaoImpl类,CoreMapper类 其中,Entities ...
- MyBatis复习【简单配置CRUD】
这里的案例集成了log4j的日志框架,项目架构: 用到的jar文件 添加配置文件:mybatis-config.xml 和dao层配置文件StudentDao.xml 这里书写了个简单的案例仅为了说 ...
- MyBatis复习
一.对JDBC的总结 1.数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 解决方案:使用数据库连接池管理数据库连接. 2.将sql语句硬 ...
- mybatis 复习笔记03
参考:http://www.mybatis.org/mybatis-3/zh/configuration.html 入门 1. 从 XML 中构建 SqlSessionFactory 每个基于 MyB ...
- mybatis笔记01
目录 1. Mybatis的介绍 2. 使用JDBC编码的分析 2.1 准备 2.3 程序代码 2.4 JDBC问题 3. Mybatis架构 4. Mybatis入门程序 4.1 mybatis下载 ...
- MyBatis学习(01)之解决mapper绑定异常
解决mapper绑定异常 HTTP Status 500 - Request processing failed; nested exception is org.apache.ibatis.bind ...
随机推荐
- 关于VS中包含库、附加包含库、
转载:https://blog.csdn.net/qing101hua/article/details/53841827 VS中C++的包含目录.附加包含目录和库目录和附加库目录的区别 对Visual ...
- Session 和cookie机制详解
参考: http://blog.csdn.net/fangaoxin/article/details/6952954/ http://blog.csdn.net/hjc1984117/article/ ...
- notepad++如何移除重复的行
Removing duplicate rows in Notepad++ (so链接) 1. 插件 TextFX 2. 正则表达式:^(.*?)$\s+?^(?=.*^\1$)
- Struts2 - 值栈(ValueStack)
1. 关于值栈: 1). helloWorld 时, ${productName} 读取 productName 值, 实际上该属性并不在 request 等域对象中, 而是从值栈中获取的. 2). ...
- bzoj 2823: [AHOI2012]信号塔 最小圆覆盖
题目大意: 给定n个点,求面积最小的园覆盖所有点.其中\(n \leq 10^6\) 题解: 恩... 刚拿到这道题的时候... 什么???最小圆覆盖不是\(O(n^3)\)的随机增量算法吗????? ...
- rsync同步文件,排除多个文件/目录
使用rsync -aP --exclude=upload 只能排除upload文件/目录.如果要排除多个文件/目录,怎么办? 那只能建一个exclude.list,里面填写要排除的目录(一行一个文件 ...
- tomcat启动加载web项目内存溢出
通过tomcat命令启动tomcat的web项目时,根据项目大小,有可能会报以下两个错误. 在启动时没有错误,但是在访问时会报错: 1. java.lang.OutOfMemoryError: Jav ...
- HDOJ5438(图的各个连通分量遍历)
#include<cstdio> #include<cstring> using namespace std; ; template<class T> struct ...
- Python知识点:distutils常用子模块
from distutils.core import setup, Extension, Commandfrom distutils.command.build import buildfrom di ...
- JavaScript原型模式(prototype)
1.原型是一个对象,其他对象可以通过它实现属性的继承所有对象在默认的情况下都有一个原型,因为原型的本身也是对象,所以一个类的真正原型是被类的内部[prototype]属性所指出.每个函数都有一个属性叫 ...