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代替。

  1. 动态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)的更多相关文章

  1. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  2. mybatis学习笔记之基础复习(3)

    mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输 ...

  3. MyBatis学习笔记(1) —— 基础知识

    mybatis 是支持普通SQL查询,存储过程和高级映射的优秀持久层框架,mybatis 清除了几乎所有的jdbc代码和参数的手工设置及对结果集的检索封装.mybatis可以使用简单的xml和注解用于 ...

  4. mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)

    文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文 ...

  5. mybatis学习笔记(四)-- 为实体类定义别名两种方法(基于xml映射)

    下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: < ...

  6. mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现

    项目结构  基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/Mybatis ...

  7. Mybatis学习笔记二

    本篇内容,紧接上一篇内容Mybatis学习笔记一 输入映射和输出映射 传递简单类型和pojo类型上篇已介绍过,下面介绍一下包装类型. 传递pojo包装对象 开发中通过可以使用pojo传递查询条件.查询 ...

  8. mybatis学习笔记(六) -- maven+spring+mybatis从零开始搭建整合详细过程(下)

    继续 mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(上) 五.使用监听器启动Spring容器 1.修改pom.xml文件,添加Spring-we ...

  9. mybatis 学习笔记(四):mybatis 和 spring 的整合

    mybatis 学习笔记(四):mybatis 和 spring 的整合 尝试一下整合 mybatis 和 spring. 思路 spring通过单例方式管理SqlSessionFactory. sp ...

随机推荐

  1. Apex语言(三)原始数据类型

    1.原始数据类型(Primitive) 整数:Integer 双精度:Double 单精度:Decimal 长整型:Long 日期:Date 日期时间:Datetime 字符串:String ID:I ...

  2. Java8新特性-接口中的静态方法与默认方法

    今天上午在读<Effective Java>时,有这样一句话:”接口中“不能有静态方法,于是联想起面试时老是被问接口相关的东西,决定总结一下,谁知道这一总结,就发现了自己知识的一大漏洞.  ...

  3. [NOI2015]软件包管理器 树链剖分_线段树

    没有太大难度,刷水有益健康 Code: // luogu-judger-enable-o2 #include <bits/stdc++.h> #define setIO(s) freope ...

  4. 第1章 面向对象的JavaScript

    针对基础知识的每一个小点,我都写了一些小例子,https://github.com/huyanluanyu1989/DesignPatterns.git,便于大家理解,如有疑问,大家可留言给我,最近工 ...

  5. linux基础随记

    1.cd 切换路径 cd ~vbird 进入这个用户的主目录cd ~ 进入root这个目录下cd .. 进入root上层目录cd - 进入root这个目录下cd /var/spool/mail 直接访 ...

  6. NodeJS的安装与使用

    Node.js 就是运行在服务端的 JavaScript.越来越多的人在使用它,通过他我们可以用JavaScript来构建后台.对于前端程序员而言,不言而喻这是一条多么令人振奋的消息.对于后台程序员而 ...

  7. 简述synchronized和java.util.concurrent.locks.Lock的异同

    1.synchronized 用在方法和代码块的区别? a. 可以只对需要同步的使用 b.与wait(),notify()和notifyall()方法使用比较方便 2.wait() a.释放持有的对象 ...

  8. VS的代码管理工具

    参考文章 可以从中知道修改代码段是要打开相关路径下的文档来修改 官方下载地址 百度云盘 如果项目中国有一些代码重复率非常高,可以把这些代码做成snippet代码段,简化成快捷键命令,加速开发

  9. 修改oracle客户端的字符集

    客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter, 表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表 方法有 : ...

  10. CentOS 6.9安装过程

    下载: https://wiki.centos.org/Download 安装过程: 分区方案一: 以下为大概的分区步骤,根据实际需要进行分配: 最终分区的配置大小如下所示: 推荐更详细的分区方案,参 ...