Mybatis学习笔记5 - 参数处理】的更多相关文章

1.单个参数:mybatis不会做特殊处理,#{参数名}:取出参数值. 2.多个参数:mybatis会做特殊处理. 多个参数会被封装成 一个map, key:param1...paramN,或者参数的索引也可以 value:传入的参数值 #{}就是从map中获取指定的key的值: 错误示例: 接口定义如下: package com.mybatis.dao; import com.mybatis.bean.Employee; public interface EmployeeMapper { pu…
输入参数:parameterType(两种取值符号) 1.类型为简单类型 区别:     (1) #{可以为任意值}         ${vaue}--->标识符只能是value     (2)#{}  自动给String类型加上‘’--->自动类型转换         ${}  原样输出 --->适合于动态字段进行动态排序     (3)#{}  防止sql注入         ${}  不防止 相同之处:     (1)都可以获取对象的值(嵌套类型对象)   2.对象类型     …
开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载.首先建立一个名字为 MyBaits 的 dynamic web project 1. 可以创建maven项目,依赖的包mybatis-3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar <!-- mybatis包 --> <depe…
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数据库连接池管理数据库. ☐ 将SQL语句硬编码到Java代码中,若SQL语句修改,需要重新编译Java代码,不利于系统维护. ☐ 将SQL语句配置在XML文件中,即使SQL变化,我们也不需要队Java代码进行重新编译. ☐ 向PreparedStatement中设置参数,对占位符号位置和设置参数值,…
本篇内容,紧接上一篇内容Mybatis学习笔记一 输入映射和输出映射 传递简单类型和pojo类型上篇已介绍过,下面介绍一下包装类型. 传递pojo包装对象 开发中通过可以使用pojo传递查询条件.查询条件可能是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如查询用户信息的时候,将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数.包装对象即Pojo类中的一个属性是另外一个pojo. 演示:根据用户名模糊查询用户信息,查询条件放到QueryVo的user属性中. 1.…
一.输入映射和输出映射 1.1 parameterType(输入类型) [传递简单类型] 详情参考Mybatis学习笔记之一(环境搭建和入门案例介绍) 使用#{}占位符,或者${}进行sql拼接. [传递pojo对象] 详情参考Mybatis学习笔记之一(环境搭建和入门案例介绍) Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为pojo属性名称. 1.2 传递pojo包装对象 开发中通过可以使用pojo传递查询条件.查询条件可能是综合的查询条件,不仅包括用户查询条件…
原文来自:<mybatis学习笔记--常见的错误> 昨天刚学了下mybatis,用的是3.2.2的版本,在使用过程中遇到了些小问题,现总结如下,会不断更新. 1.没有在configuration.xml配置对应的sql配置文件 错误: Error updating database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for ***Mapp…
mybatis 学习笔记(三):mapper 代理开发 dao 层 优势 通过使用mapper 代理,我们可以不需要去编写具体的实现类(使用 getMapper() 方法自动生成),只需编写接口即可,简化了原始 dao 开发的流程. 核心 mapper 代理开发 dao 层,最主要的其实就是两个步骤: 编写mapper.xml映射文件 编写mapper接口(相当于dao接口) 下面举个栗子. 步骤 1 编写 mapper.xml 映射文件 mapper.xml: <?xml version=&quo…
mybatis 学习笔记(二):mybatis SQL注入问题 SQL 注入攻击 首先了解下概念,什么叫SQL 注入: SQL注入攻击,简称SQL攻击或注入攻击,是发生于应用程序之数据库层的安全漏洞.简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵. 最常见的就是我们在应用程序中使用字符串联结方式组合 SQL 指令,有心之人就会写一些特殊的符号,恶意篡改原本的 SQL 语法的…
mybatis 学习笔记(一):mybatis 初认识 简介 MyBatis是一个Java持久层框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来.mybatis 可以将 preparedStatement 中的输入参数自动进行映射,将查询结果集灵活映射成 java 对象.所以使用 mybatis 我们就可以不用写原生 jdbc 程序,并且能很好的避免 原生 jdbc 中 SQL 注入的问题. 一个完整 mybatis 程序的操作过程 1 配置 mybatis 的全局配置文件 S…
mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输入参数映射.输出结果映射) mybatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,对sql语句优化非常方便, 适用于需求变化较多项目,比如互联网项目. mybatis框架执行过程: 1.配置mybatis的配置文件,SqlMapConfig.xml(名称不固定) 2.通过配置文件,…
mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目. mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足sql语句 mybatis可将向prparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象.(输出映射) SqlMapConfig.xml(是mybatis的全局配置文件,名称不固定) 配置了数据源/事务等mybatis运行环境 配置映射文件(配置sql语句) m…
mybatis学习笔记之学习结构(1) 学习结构: 1.mybatis开发方法 原始dao开发方法(程序需要编写dao接口和dao实现类) mybatis的mapper接口(相当于dao接口)代理开发方法 mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射 mybatis输出映射 mybatis的动态sql 2.高级知识 高级结果集映射(一对一/一对多/多对多) mybatis查询缓存(一级缓存/二级缓存) mybatis和spring进行整合…
MyBatis 学习笔记(七)批量插入ExecutorType.BATCH效率对比一.在mybatis中ExecutorType的使用1.Mybatis内置的ExecutorType有3种,默认的是simple,该模式下它为每个语句的执行创建一个新的预处理语句,单条提交sql:而batch模式重复使用已经预处理的语句, 并且批量执行所有更新语句,显然batch性能将更优: 2.但batch模式也有自己的问题,比如在Insert操作时,在事务没有提交之前,是没有办法获取到自增的id,这在某型情形下…
[MyBatis学习笔记]系列之预备篇一:ant的下载与安装 [MyBatis学习笔记]系列之预备篇二:ant入门示例 [MyBatis学习笔记]系列之一:MyBatis入门示例 [MyBatis学习笔记]系列之二:MyBatis增删改示例 [MyBatis学习笔记]系列之三:MyBatis的association示例 [MyBatis学习笔记]系列之四:MyBatis association的两种形式 [MyBatis学习笔记]系列之五:MyBatis与Spring集成示例 [MyBatis学…
MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统,如果我们将用户信息和订单信息都保存在user表中,这样就不存在联结关系,因为我们仅仅操作一张表就好. 但是这是非常不明智的选择,举例来说,一个用户可以拥有多个订单,如果保存在一个表中,势必会导致用户信息的多次出现,因为每个订单绑定的用户信息都是相同的. 所以我们尽量要将不同的信息存储与不同的表中,但…
文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文件复制到src/main/webapp下,删掉WebContent 5.修改Deployment Assembly 6.测试 二.mybatis访问mysql 1.数据库准备 2.修改pom.xml 3.创建实体类 4.创建访问接口 5.添加映射文件 6.添加MyBatisCfg.xml配置文件,注…
下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: <insert id="addUser" parameterType="main.User"> insert into tb_user(name,age) values(#{name},#{age}) </insert> 注:parameterType=…
项目结构  基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/MybatisUtil.java package util; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; i…
继续 mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(上) 五.使用监听器启动Spring容器 1.修改pom.xml文件,添加Spring-web 2.修改web.xml,配置启动Spring容器 3.新建BookServer 4.新建BookServlet 5.修改ApplicationContext.xml 6.测试 继续!!! 五.使用监听器启动Spring容器 1.修改pom.xml,添加Spring-web包(注:上一篇中的pom…
mybatis学习笔记(五):mybatis 逆向工程 在日常开发中,如果数据库中存在多张表,自己手动创建 多个pojo 类和编写 SQL 语法配置文件,未免太过繁琐,mybatis 也提供了一键式生成这些文件的操作,我们称为 mybatis 逆向工程.一般我们在开发中采用由数据库的表生成java代码. mybatis 逆向工程的下载 贴上官网链接:Mybatis Generator 当然对于 jar 包的下载,我们可以直接使用 maven 导入: <dependency> <group…
mybatis 学习笔记(四):mybatis 和 spring 的整合 尝试一下整合 mybatis 和 spring. 思路 spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spring和mybatis整合自动完成). 持久层的mapper都需要由spring进行管理. 整合环境 在这里我们还是使用 maven 工程来导入 jar 包. 需要用到的 jar 包:…
mybatis学习笔记(14)-查询缓存之中的一个级缓存 标签: mybatis mybatis学习笔记14-查询缓存之中的一个级缓存 查询缓存 一级缓存 一级缓存工作原理 一级缓存測试 一级缓存应用 本文主要讲mybatis的一级缓存.一级缓存是SqlSession级别的缓存. 查询缓存 mybatis提供查询缓存.用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级缓存是SqlSession级别的缓存.在操作数据库时须要构造sqlSession对象,在对象中有一…
mybatis学习笔记(10)-一对一查询 标签: mybatis mybatis学习笔记10-一对一查询 resultType实现 resultMap实现 resultType和resultMap实现一对一查询小结 本文使用两种方式(resultType和resultMap)实现一对一查询,查询订单信息,关联查询创建订单的用户信息 resultType实现 sql语句 确定查询的主表:订单表 确定查询的关联表:用户表 关联查询使用内连接?还是外连接? 因为orders表中有一个外键(user_…
MyBatis:学习笔记(4)——动态SQL…
mybatis学习笔记(7)-输出映射 标签: mybatis mybatis学习笔记7-输出映射 resultType 输出简单类型 输出pojo对象和pojo列表 resultMap resultMap用法 小结 本文主要解说mybatis的输出映射. 输出映射有两种方式 resultType resultMap resultType 使用resultType进行输出映射,仅仅有查询出来的列名和pojo中的属性名一致.该列才干够映射成功. 假设查询出来的列名和pojo中的属性名所有不一致.没…
mybatis学习笔记 mybatis简介 Mybatis 开源免费框架.原名叫iBatis,2010在googlecode,2013年迁移到 github 作用: 数据访问层框架,底层对JDBC进行封装. mybatis的优点:使用mybatis时不需要编写实现类,只需要写需要执行得sql命令. 环境搭建 导入jar包, 在src下新建全局配置文件 没有名称和地址要求,例如mybatis.xml,引入DTD或者schema <?xml version="1.0" encodin…
Mybatis学习笔记大纲: 一.MyBatis简介 二.MyBatis-HelloWorld 三.MyBatis-全局配置文件 四.MyBatis-映射文件 五.MyBatis-动态SQL 六.MyBatis-缓存机制 七.MyBatis-Spring整合 八.MyBatis-逆向工程 九.MyBatis-工作原理 十.MyBatis-插件开发…
博客整理 Mybatis学习笔记(一)--对原生jdbc中问题的总结 Mybatis学习笔记(二)--Mybatis框架 Mybatis学习笔记(三)--入门程序 MyBatis学习笔记(四)--入门程序(续) Mybatis学习笔记(五)--DAO开发 Mybatis学习笔记(六)--配置文件 Mybatis学习笔记(七)--输入输出映射 Mybatis学习笔记(八)--动态SQL Mybatis学习笔记(九)--一对一和一对多查询 Mybatis学习笔记(十)--多对多查询 Mybatis学…
Mybatis小白快速入门 简介 本人是一个Java学习者,最近才开始在博客园上分享自己的学习经验,同时帮助那些想要学习的uu们,相关学习视频在小破站的狂神说,狂神真的是我学习到现在觉得最GAN的老师[手动狗头],大家可自行前去学习. 导航栏 Mybatis学习笔记-第一个Mybatis程序 Mybatis学习笔记-CRUD Mybatis学习笔记-配置解析 Mybatis学习笔记-ResultMap结果集映射 Mybatis学习笔记-日志 Mybatis学习笔记-分页 Mybatis学习笔记-…