mybatis学习笔记之基础框架(2)
mybatis学习笔记之基础框架(2)
mybatis是一个持久层的框架,是apache下的顶级项目。
mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足sql语句
mybatis可将向prparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)
SqlMapConfig.xml(是mybatis的全局配置文件,名称不固定)
配置了数据源/事务等mybatis运行环境
配置映射文件(配置sql语句)
mapper.xml(映射文件)/mapper.xml/mapper.xml
SqlSessionFactory(会话工厂)
作用:创建SqlSesion
SqlSession(会话,是一个接口,面向用户程序员的接口)
作用:操作数据库(发出sql增删改查)
Executor(执行器,是一个接口(基本执行器/缓存执行器))
作用:SqlSes内部通过执行器操作数据库
mapped statement (底层封装对象)
作用:对操作数据库存储封装,包括sql语句。输入参数/输出结果类型
输入参数类型 java简单类型 hashmap pojo自定义
输出参数类型 java简单类型 hashmap pojo自定义
3.入门程序:
需求:根据用户id(key)查询用户信息
根据用户名称模糊查询用户信息
添加用户
删除用户
更新用户
mybatis运行环境(jar包)
lib下的依赖包:核心包
mybatis-3.3.0.jar:操作指南
加入mysql的驱动包
3.0创建po类
3.1映射文件
映射文件命名:
User.xml(原始ibatis命名),mapper代理开发映射文件名称叫xxxMapper.xml,比如:UserMapper.xml/ItemsMapper.xml
在映射文件中配置sql语句。
3.2在sqlMapConfig.xml映射文件
在sqlMapConfig.xml中加载user.xml
3.3添加用户
4.0程序的编写小结
3.3.1parameterType 在映射文件中通过parameterType指定输入参数类型。
3.3.2resultType 在映射文件中通过resultType指定输出结果的类型。
3.3.3 #{}和${} #{}表示一个占位符。${}表示一个拼接符号,但会引起sql注入,不建议使用。
3.3.4SelectOne和selectList
selectOne表示查询一条记录进行映射。如果使用selectOne可以实现那么也可以使用selectList实现。
selectList 表示查询出一个列表(多条记录)进行映射。如果使用selectList查询多条记录不可用selectOne代替。
动态sql
mybatis核心对sql语句进行灵活操作,同伙表达式进行判断,对sql进行灵活拼接、组装。5.1用户信息中和查询列表和用户信息查询列表总数这两个stat的定义使用动态sql。
对查询条件进行判断,如果输入条件不为空,才进行拼接。
<!-- where-->
<where>
<if test ="username"
5.2sql片段
5.3foreach
向sql传递数组或List,mybatis使用foreach解析。
5.3.1需求
SELECT * FROM USER WHERE id=1 OR id=2 OR id=3
或者
SELECT * FROM USER WHERE id IN(1,2,3)
5.3.2实现
在输入参数类型中添加`List<Integer>ids` 传入多个参数。
mybatis学习笔记之基础框架(2)的更多相关文章
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- mybatis学习笔记之基础复习(3)
mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...
- MyBatis学习笔记(1) —— 基础知识
mybatis 是支持普通SQL查询,存储过程和高级映射的优秀持久层框架,mybatis 清除了几乎所有的jdbc代码和参数的手工设置及对结果集的检索封装.mybatis可以使用简单的xml和注解用于 ...
- mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)
文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文 ...
- mybatis学习笔记(四)-- 为实体类定义别名两种方法(基于xml映射)
下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: < ...
- mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现
项目结构 基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/Mybatis ...
- Mybatis学习笔记二
本篇内容,紧接上一篇内容Mybatis学习笔记一 输入映射和输出映射 传递简单类型和pojo类型上篇已介绍过,下面介绍一下包装类型. 传递pojo包装对象 开发中通过可以使用pojo传递查询条件.查询 ...
- mybatis学习笔记(六) -- maven+spring+mybatis从零开始搭建整合详细过程(下)
继续 mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(上) 五.使用监听器启动Spring容器 1.修改pom.xml文件,添加Spring-we ...
- mybatis 学习笔记(四):mybatis 和 spring 的整合
mybatis 学习笔记(四):mybatis 和 spring 的整合 尝试一下整合 mybatis 和 spring. 思路 spring通过单例方式管理SqlSessionFactory. sp ...
随机推荐
- 用了那么多项目管理工具,还是CORNERSTONE这款最好用
在与软件开发有关的项目,往往会出现很难管理情况.许多事情都需提前计划.控制与管理,所以许多项目经理很容易迷失在计划的过程中.幸运的是,市场上提供了各种各样的项目管理工具.但不幸的是,工具实在是太多了. ...
- 图的遍历---DFS
类型一:邻接表 题目一:员工的重要性 题目描述 给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id. 比如,员工1是员工2的领导,员工2是员工3的领导.他们相应的重要度 ...
- eas之f7
f7控件实际上是一张单据.所以对于数据的修改实际上是需要修改单据的,是在eas中修改单据的元数据是组件.包括了f7控件, F7是个快捷键,是某个字段符合条件的集合! F7就是一个控件,用来 ...
- js数组对象去重
转: https://www.cnblogs.com/gaoht/p/9850449.html 在数组对象中去掉重复的对象: export function deteleObject(obj) { v ...
- linux中php项目无法发送邮件:PEAR mail package is not installed
发送邮件报错误:PEAR mail package is not installed的原因是linux中缺少PEAR mail组件, PEAR mail组件也就是PHP Pear Mail / SMT ...
- 关于使用element中的popup问题
高产似母猪..写完上篇看了几集新番就空虚了..零点时分决定爬起来,趁着清明假期能写多写点. 1.前言 我们知道弹出框都是在触发了某种条件后展示,而一个个的新的弹出框的展示,总是覆盖着上一个弹出框.实现 ...
- 【hihocoder 1474】拆字游戏
[题目链接]:http://hihocoder.com/problemset/problem/1474 [题意] [题解] 题目的意思是说,那个块在最左端先出现,就先处理那个块; 每个连通块,处理出最 ...
- 哈理工 oj 2122 旅行(map + 最短路dij算法)
旅行 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 18(6 users) Total Accepted: 3(3 users) Ra ...
- java 数组中求最值
java中数组求最值,这在实际的开发中差点儿用不到,可是在面试中会偶尔被问到,这是考你主要的思维能力,如今说下这个题的基本思路 思路: 1:先定义一个变量,通常是用数组的第一个值 2:在循环中推断(从 ...
- SQL Server 运行计划操作符具体解释(2)——串联(Concatenation )
本文接上文:SQL Server 运行计划操作符具体解释(1)--断言(Assert) 前言: 依据计划.本文開始讲述另外一个操作符串联(Concatenation).读者能够依据这个词(中英文均可) ...