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
(----输出映射还没复习-----)

最新文章

  1. C# 发送qq邮箱
  2. JSP指令
  3. Ubuntu 12 编译安装 PHP 5.4 及 问题汇总
  4. xml、 Dao service 三层参数以及对应关系
  5. sql还原数据库时候,遇到数据库被占用的解决情况
  6. ALM11 OTA API接口的问题
  7. (二 )VMware workstation 部署虚拟集群实践——并行批量操作环境部署
  8. 【DB】HBase的基本概念
  9. [转]Vim 复制粘贴探秘
  10. 适配器模式 java
  11. C# 热水器
  12. Python核心编程读笔 8: 文件和输入输出
  13. 软件测试学习日志————round 0 An impressed error in my past projects
  14. linux_vim_快捷键
  15. column name is keyword from
  16. wpf通过VisualTreeHelper找到控件内所有CheckBox和TextBox并做相应绑定
  17. 彻底理解Oracle中的集合操作与复合查询
  18. linux服务安装与配置(二):安装xinetd服务
  19. linus 下redis守护进程启动
  20. 一步一步开始FPGA逻辑设计 - 高速接口之PCIe(转)

热门文章

  1. Oracle--存储过程和自定义函数
  2. ffmpeg 翻译文档
  3. 根据sid或sqlID查询SQL
  4. BZOJ5372: [Pkusc2018]神仙的游戏
  5. bzoj 3689: 异或之 Trie+堆
  6. cloudera上面安装Spark2.0
  7. 安装phpredis
  8. 【转】Pro Android学习笔记(三六):Fragment(1):基本概念
  9. C++类中的常数据成员和静态数据成员的区别
  10. [原创]SQL 表值函数:获取从今天计算起往前自定义天数